我一直在玩这个问题一段时间,并没有想出如何做到这一点。 我在每个工作表中都有相同的功能(这些工作表的名称如下 Name="One", CodeName="SheetOne" ...):
const someVar as Boolean = True
Public Function myFunction() as Boolean
myFunction = someVar
End Function
现在我希望它像这样从外部调用 - 在 ThisWorkbook 中有过程“doThis()”和函数“TestThis():
Sub doThis()
Dim i as Integer
For i = 1 to ThisWorkbook.Sheets.Count
If testThis(ThisWorkbook.Worksheets(i)) = True then
Debug.print "Success!"
End If
Next i
Function testThis(x As Worksheet)
If x.myFunction = True Then
testThis = True
Else
testThis = False
End If
现在我知道在这一行“如果 x.myFunction = True ”它会抛出错误“找不到方法或数据成员”,因为我不能用这个引用调用那个函数,所以我用 VBComponent 尝试过:
Sub doThis()
Dim i as Integer
For i = 1 to ThisWorkbook.Sheets.Count
If testThis(ThisWorkbook.VBProject.VBComponents(Worksheets(i).CodeName)) _
= True then
Debug.print "Success!"
End If
Next i
Function testThis(x As VBComponent)
If x.myFunction = True Then
testThis = True
Else
testThis = False
End If
但同样,它会引发“对象不支持此属性或方法”错误。任何想法,我如何从一个变量中调用该函数,该变量存储了对该工作表的任何类型的引用?任何帮助,将不胜感激。