Доступ к кнопке формы - PullRequest
       0

Доступ к кнопке формы

0 голосов
/ 24 февраля 2020

Я пытаюсь получить доступ к кнопке формы ... как тест. Но когда я так делаю, вот так; Я получаю сообщение об ошибке, что оно не поддерживает это свойство или метод? Как правильно go получить доступ к такой кнопке?

With ActiveSheet.Shapes("FH_btnHideShowCNC")
    MsgBox .Caption
    Exit Sub    
End With

Ответы [ 2 ]

1 голос
/ 24 февраля 2020

Поскольку ActiveSheet не обязательно является Worksheet, это свойство оборачивает ваш лист в Object, и тогда вам, в основном, нужно угадать, что такое правильные заклинания, и скрестить пальцы, что никаких опечаток нет (Option Explicit не может спасти вас от кода с поздней привязкой).

Восстановите раннюю привязку как можно скорее, не связывайте вызовы участников с Object или Variant.

Dim sheet As Worksheet
Set sheet = ActiveSheet

With sheet.Shapes("FH_btnHideShowCNC")
    'Shapes.Item(String) returns a Shape object, so we're early-bound now.
    '...
End With

Теперь, когда интерфейс блочной переменной With известен во время компиляции, вы получите список доступных членов, и код взорвется в время компиляции , если вы пытаетесь вызвать члена, который не существует (например, .Caption), а не взорваться в время выполнения .

0 голосов
/ 24 февраля 2020

Это то, что вы пытаетесь?

With ActiveSheet.Shapes("FH_btnHideShowCNC")
    MsgBox .TextFrame.Characters.Text
    Exit Sub
End With

И MsgBox .Name даст вам название кнопки, которая FH_btnHideShowCNC

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...