1
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 行。当我使用“工作簿”来声明“x260path”而不是字符串时,它在第 3 行显示另一个错误说“对象变量或未设置块变量”。你能帮忙吗?为什么会这样?

4

1 回答 1

1

在 VBA 中,等效函数=Today()Date()(*or Date)

x260path = CONCATENATE("..." & Date)

或者,使用Now()函数(虽然也包括时间戳)

x260path = CONCATENATE("..." & Now)

debug.print Date 

2013 年 2 月 10 日

debug.print Now

2013 年 2 月 10 日 08:39:20


一些电子表格函数可用于WorksheetFunction该类。例如

Sub Main()

    Dim sum As Double
    sum = WorksheetFunction.sum(10, 20)
    MsgBox sum

End Sub

注意:当您输入 时sum = WorksheetFunction..您应该得到 VBA 的 Intelli-sense 帮助。它是您可以与 WorksheetFunction 类一起使用的所有可用函数的列表。

在此处输入图像描述

在您的情况下,该=Concatenate函数等效&于 VBA 中的运算符。因此,最简单的方法是使用&

x260path = "C:\..." & date

如果您尝试使用的函数在 Intelli-sense 中不存在,您可以创建自己的 UDF,或者您可以在线研究该函数的工作原理以及如何覆盖它。

于 2013-10-02T07:33:32.957 回答