Я пытаюсь написать макрос, который создаст всплывающее окно, которое позволит мне перемещаться между страницами книги. До сих пор мне удалось заполнить контрольную панель, которая запускает простой макрос, но я бы хотел, чтобы он мог принимать переменные (ака имя листа), чтобы избежать необходимости писать кучу разных макросов. Вот что я до сих пор.Запустить макрос, используя controlpopup vba
Sub Custom_PopUpMenu_1(Mname As String)
Dim MenuItem As CommandBarPopup
' Add the popup menu.
With Application.CommandBars.Add(Name:=Mname, Position:=msoBarPopup, _
MenuBar:=False, Temporary:=True)
With .Controls.Add(Type:=msoControlPopup)
.Caption = "Menu Control"
With .Controls.Add(Type:=msoControlButton)
.Caption = "Button 1 in menu"
.FaceId = 71
.OnAction = "'" & ThisWorkbook.Name & "'!" & "TestMacro"
End With
End With
End With
End Sub
Это запускает макрос «TestMacro», но я не знаю, как написать его так, что он будет принимать строковую переменную. Моим другим является то, что в каждом .OnAction обновляется глобальная переменная, которая является именем листа, но я не уверен, как это сделать. Сообщите мне, если вы можете помочь. Благодаря!
Тим, управление видеомагнитофоном бесполезно, если рабочий лист скрыт :) –
Спасибо, что отлично поработали! – user3075100
Если у вас было больше времени, чтобы ответить на следующий вопрос, это было бы здорово. Приведенный выше код отлично подходит для определенной строки (в вашем примере «blah22»); однако, если вы хотите добавить строковую переменную, как бы вы это сделали. Я попытался написать этот код, но макрос не получил вызов: .OnAction = "'" & ThisWorkbook.Name & "'! 'TestMacro" & stringvariable & "'" – user3075100