VBA 格式日期 运行-时间 438: 对象不支持此 属性 或方法
VBA Format Date Run-time 438: Object doesn't support this property or method
我在格式化日期时遇到了 运行 错误 438:对象不支持此 属性 或方法 。这对我来说没有意义,因为代码非常简单。
Sub test()
Dim timeStamp As String
timeStamp = Format(DateTime.Now, "Long Date")
MsgBox timeStamp
End Sub
格式导致错误,但我不明白为什么。
我在另一个工作簿中尝试了这段代码,它运行得非常好。
这个错误可能是什么原因?
所以我决定将我的所有代码重新转移到另一个工作簿中,并从那里找出错误的真正原因。
这是因为上面的代码被放在一个名为“格式”的sheet中(我将其命名为格式,因为该工具的目的是格式化多个形状)。
我给sheet改名了,我知道这是我的愚蠢,也是我的疏忽。
如您所见,这是命名冲突的副作用。在这种情况下 .
您可以看到 Excel 通过 Intellisence 更喜欢该对象而不是函数 - 它向您展示了作品的属性和方法sheet
修复是
- 为 sheet 选择一个不同的名称(正如您所做的那样)
- 函数调用更具体
Sub test()
Dim timeStamp As String
timeStamp = VBA.Format(VBA.DateTime.Now, "Long Date")
VBA.MsgBox timeStamp
End Sub
我在格式化日期时遇到了 运行 错误 438:对象不支持此 属性 或方法 。这对我来说没有意义,因为代码非常简单。
Sub test()
Dim timeStamp As String
timeStamp = Format(DateTime.Now, "Long Date")
MsgBox timeStamp
End Sub
格式导致错误,但我不明白为什么。
我在另一个工作簿中尝试了这段代码,它运行得非常好。
这个错误可能是什么原因?
所以我决定将我的所有代码重新转移到另一个工作簿中,并从那里找出错误的真正原因。
这是因为上面的代码被放在一个名为“格式”的sheet中(我将其命名为格式,因为该工具的目的是格式化多个形状)。
我给sheet改名了,我知道这是我的愚蠢,也是我的疏忽。
如您所见,这是命名冲突的副作用。在这种情况下
您可以看到 Excel 通过 Intellisence 更喜欢该对象而不是函数 - 它向您展示了作品的属性和方法sheet
修复是
- 为 sheet 选择一个不同的名称(正如您所做的那样)
- 函数调用更具体
Sub test()
Dim timeStamp As String
timeStamp = VBA.Format(VBA.DateTime.Now, "Long Date")
VBA.MsgBox timeStamp
End Sub