VBA:在另一个具有多个参数的工作表上调用sub

VBA:在另一个具有多个参数的工作表上调用sub,vba,excel,Vba,Excel,我一直在努力调用另一个工作表上带有参数的过程(sub)。我可以调用另一个工作表上的过程。我可以调用带有参数的过程。但两者结合会让我头痛 以下是我现在拥有的: Private Sub Workbook_Open() Call Sheet2.FillCombo("Mngt Dashboard", "ComboMonth") 'Sheet2.FillCombo"Operational Dashboard", "ComboMonth2" End Sub 我尝试了调用过程的两种语法,但都导致“下标超出范

我一直在努力调用另一个工作表上带有参数的过程(sub)。我可以调用另一个工作表上的过程。我可以调用带有参数的过程。但两者结合会让我头痛

以下是我现在拥有的:

Private Sub Workbook_Open()
Call Sheet2.FillCombo("Mngt Dashboard", "ComboMonth")
'Sheet2.FillCombo"Operational Dashboard", "ComboMonth2"
End Sub
我尝试了调用过程的两种语法,但都导致“下标超出范围(9)”。 以下是调用的过程(位于第2页):

有没有人能给我指路


提前感谢,在第2行标记,尝试删除括号:

Sheet2.FillCombo "Mngt Dashboard", "ComboMonth"

代码很好。该错误表示其中一个参数错误。能否确保工作表和combomonth的名称实际上是“Mngt Dashboard”和“combomonth”?同时避免使用
ActiveWorkbook
。对于这种情况,请使用
工作簿(工作簿名称)
按名称指定工作簿,或者使用
此工作簿
。可能包含“Mngt Dashboard”的工作簿不是活动工作簿。@MarkH您是否可以仅通过
FillCombo
而不是
Sheet2调用FillCombo
?然后,将子模块移动到模块?我同意最后两个评论,尤其是后一个评论。这就是模块的用途。只要说“Sheets(SheetName)”就行了,除非你是在工作簿之间工作。至于调用FillCombo,您不需要指定Sheet2。打电话给FillCombo。如果以编程方式派生SheetName和Month,则每个工作表上应该能够有相同的代码。最后,看起来您没有发布所有代码,而且似乎缺少一个明确定义的“问题”。
Sheet2.FillCombo "Mngt Dashboard", "ComboMonth"