ByRef参数与Excel中的VBA不匹配

我有一个Let属性定义为:

Public Property Let Set_ChanArray_Enabled1(i As Integer, j As Integer, choice As Boolean) ChanArray(i, j).Enabled1 = choice End Property 

在同一个对象模块中定义的一个子集中,我尝试执行以下操作:

 For j = 4 To 44 Me.Set_ChanArray_Enabled1(j, 1) = True Me.Set_ChanArray_Enabled1(j, 3) = True Next j 

但VBE给了我一个ByRef参数不匹配指向j传入

 Me.Set_ChanArray_Enabled1(j, 1) = True 

我已经定义了j和传入方法的参数作为整数,所以我不知道什么是错的。

那个错误表明j的types有问题(即它的types不是整型)。

你有没有在这样的陈述中宣布它? dim j, i as integer ? 如果是这样,那么只有i是一个整数(你需要重复as integer )。

(使用byval似乎“修复”了这一点,因为它的pass-by-copy语义允许VBA在调用Set_ChanArray_Enabled1之前执行自动types转换为整数)。