Sub openwb()
Dim x260path As String
x260path = "E:\sarath\PTMetrics\20131002\D8 L538-L550 16MY\D8 L538-L550_16MY_Powertrain Metrics_" & Format(Date, "YYYYMMDD") - 1
Workbooks("x260path").Activate
ActiveWorkbook.SaveAs ["E:\sarath\PTMetrics\20131002\D8 L538-L550 16MY\D8 L538-L550_16MY_Powertrain Metrics_" & Format(Date, "YYYYMMDD")]
Debug.Print x260path
End Sub
这里,当我执行时,错误显示“下标超出范围”。并且它出现在第4行。当我使用'workbook'来声明'x260path'而不是字符串时,它在第3行显示另一个错误“对象变量或块变量未设置”。你可以帮忙吗?为什么会这样?
答案 0 :(得分:1)
在VBA中,=Today()
的等效函数为Date()
(*或Date
)
x260path = CONCATENATE("..." & Date)
或者,使用Now()
函数(虽然也包括时间戳)
x260path = CONCATENATE("..." & Now)
debug.print Date
2013年2月10日
和
debug.print Now
02/10/2013 08:39:20
某些电子表格函数可用于WorksheetFunction
类。例如
Sub Main()
Dim sum As Double
sum = WorksheetFunction.sum(10, 20)
MsgBox sum
End Sub
注意:当您在键入sum = WorksheetFunction.
时输入.
时,您应该获得VBA的智能感知帮助。它是可以与WorksheetFunction类一起使用的所有可用函数的列表。
在您的情况下,=Concatenate
函数等同于VBA中的&
运算符。因此,最简单的方法是使用&
x260path = "C:\..." & date
如果您尝试使用的功能在Intelli-sense中不存在,您可以创建自己的UDF,或者您可以对该功能如何工作以及如何覆盖它进行一些在线研究。