我在正在创建的数据库中使用以下代码行。
Dim yr As String
yr = Format(Date, "yy")
该行代码是从另一个工作正常的数据库中复制的。但是,在此新数据库中,格式行会引发错误 - 运行时错误 13:类型不匹配。我看不出问题是什么。
就像Lee Mac所说,在VBA中,函数可以在不同的上下文中重新声明。这些不同的函数可以有不同的输入参数和不同的返回值。如果其中一个参数的类型错误,或者返回了错误类型的参数,则这可能会导致类型不匹配。此外,这可能会导致意外行为。
唯一可以在您共享的代码中重新声明的函数是Format
函数,因为Date
也是一种数据类型,并且您不能从 VBA 声明与数据类型同名的函数。
您可以使用函数的库和名称来解决此问题:
yr = VBA.Format(Date, "yy")
或者,更具体地说,您可以使用函数的库、类和名称(不是必需的,因为 VBA 库只包含一个Format
函数):
yr = VBA.Strings.Format(Date, "yy")
可以使用对象浏览器 (F2) 查找函数的全名以及任何可能的冲突。输入格式既会显示VBA.Format
,也可能显示另一个具有该名称的公共函数。