2014-11-24 2 views
1

Я некоторое время пытаюсь вызвать процедуру (под) с аргументами, расположенными на другом листе. Я могу вызвать процедуру на другом листе. Я могу вызвать процедуру с аргументами. Но сочетание двух причин вызывает у меня головную боль.VBA: вызов субфайла на другом листе с несколькими аргументами

Вот что я сейчас:

Private Sub Workbook_Open() 
Call Sheet2.FillCombo("Mngt Dashboard", "ComboMonth") 
'Sheet2.FillCombo"Operational Dashboard", "ComboMonth2" 
End Sub 

Я попробовал оба syntaxis для вызова процедуры, но как результат 'подстрочный из диапазона (9). Вот процедура вызывается (находится на sheet2):

Sub FillCombo(SheetName As String, ObjName As String) 
Dim objCombo As Object 
Set objCombo = ActiveWorkbook.Sheets(SheetName).OLEObjects(ObjName).Object 
objCombo.Clear 
objCombo.AddItem..... 
... 
End Sub 

Есть ли кто-то там, что может показать мне свет?

Заранее спасибо, Марк

+0

Код отлично. Эта ошибка означает, что один из аргументов неверен. – Rory

+0

Можете ли вы убедиться, что имя рабочего листа и комбомонта на самом деле «Mngt Dashboard» и «ComboMonth»? –

+1

Также избегайте использования 'ActiveWorkbook'. В этом случае задайте книгу по имени с помощью «Рабочие книги (WORKBOOK_NAME)» или, возможно, используйте «ThisWorkbook». Возможно, что рабочая книга, содержащая «Mngt Dashboard», не является активной книгой. – cheezsteak

ответ

0

На 2-ой линии, попробуйте опуская скобки:

Sheet2.FillCombo "Mngt Dashboard", "ComboMonth" 
Смежные вопросы