Как я могу вызвать модуль, написанный в Excel, нажав на элемент управления ActiveX на рабочем листе?
3 ответа
Не совсем понятно, о чем вы спрашиваете, но я понимаю, что это ваша проблема:
У вас есть элемент управления ActiveX, который запускается при событии щелчка. VBA для этого вызывается только нажатием кнопки и не может быть вызван из любого другого Sub, но вы хотели бы иметь возможность вызывать этот код из другого модуля.
Я не верю, что вы можете сделать это, но есть лучший подход к проблеме. Поместите код для вашего элемента управления ActiveX в новый Sub в модуле. Затем замените код для события нажатия кнопки следующим:
Private Sub CommandButton1_Click()
Call NewSub
End Sub
Где NewSub
- это имя вашего нового Sub. Это должно позволить вам делать то, что вы хотели.
Код для элемента управления ActiveX, например button_click на рабочем листе, может вызываться из других подпрограмм, даже из других модулей. Просто используйте ключевое слово "Public" для описания элемента управления ActiveX вместо "Private". Затем вызовите подпрограмму с помощью оператора, такого как Call Sheets(mySheetName).myButtonName_Click
.
Чтобы вызвать подпрограмму, расположенную в ThisWorkbook, из SHeet1: Сделайте это: Вызовите ThisWorkbook.ParseText
Где определение: Public Sub ParseText()