我有一个将工作表名称作为参数的函数,例如
Sub do_things(sheetCodeName as Variant)
sheetCodeName.Cells(1,1) = "Hello"
End Sub
我希望能够使用ActiveSheet.Codename之类的东西来获取给定工作表的代号,并将其作为代号参数传递给我的do_things子例程。但是,我得到
需要运行时错误'424'对象。
这似乎是因为ActiveSheet.Codename是一个字符串,而实际上在子例程调用中键入代号时会将其作为工作表传递。
我是否可以通过一种方法来收集工作表的代号并将其传递给我的do_things子项,而无需手动键入它?
答案 0 :(得分:2)
更简单的解决方案是传递一个Worksheet
对象:
Sub do_things(ByVal ws As Worksheet)
ws.Cells(1,1).Value = "Hello"
End Sub
如果需要,您可以直接通过ActiveSheet
。无需使用.CodeName
。
答案 1 :(得分:-1)
您可以只通过ActiveSheet,但是如果由于某种原因而不能这样做,则可以更改您的子目录:
Sub do_things(sheetCodeName as Variant)
Worksheets(sheetCodeName).Cells(1,1) = "Hello"
End Sub
由于该字符串不是对象,因此现在不起作用。