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