ByRef参数类型不匹配-Excel VBA

威震天77

下午,

我有一个从日期计算星期几名称的功能:

Function calcWeekdayName(calcDate As Date) As String

Dim calcWeekday As Integer
calcWeekday = Weekday(calcDate, vbMonday)

calcWeekdayName = weekdayName(calcWeekday, True, vbMonday)

End Function

然后,我使用Public变量将日期传递给此函数。在表2中声明了Public变量:

Public searchDate As Date

然后在我的函数下面的子目录中设置变量:

searchDate = Worksheets("Update Data").Range("B3").Value

B3在更新数据上的格式为dd / mm / yyyy

当我尝试使用函数和searchDate变量设置变量weekdayName时,出现了ByRef参数类型不匹配的情况。

在工作表2上:

 Public weekdayName As String

在子:

 weekdayName = calcWeekdayName(searchDate)

B3的当前值为28/03/2016,但我也尝试过01/01/2016。

干杯

马修·金登(Mathieu Guindon)

Sheet2是工作表对象,其背后的代码是类模块

类模块和“标准模块”的不同之处在于,它们的Public成员要求实例是可访问的。

因此,您可以这样做Sheet2.MyPublicVariable = 42,但不能做到这一点,MyPublicVariable = 42 除非您在声明该变量的模块中

通过Option Explicit在模块顶部进行指定可以避免您的问题则将searchDate无法访问,因此无法声明,并且VBA代码将拒绝编译。

通过指定Option Explicit,您允许使用未声明的变量,这是VBA中所有邪恶的根源。

使用。选项。明确的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章