Excel vb loop / concatenate - что я делаю не так - PullRequest
0 голосов
/ 10 августа 2010

Я хотел сделать все мои БТН невидимыми.Они названы:

btnHere1

btnHere2

btnHere3

btnHere4

For i = 1 To 4 ["btnHere" & i].Visible = False Next

Ответы [ 3 ]

0 голосов
/ 11 августа 2010

Один из способов сделать это - перебрать все элементы управления в вашей форме:

Dim ctrl As Control

For Each ctrl In Me.Controls

    If TypeName(ctrl) = "CommandButton" Then
        ctrl.Visible = False
    End If

Next ctrl

Этот метод означает, что вам не нужно ссылаться на кнопки по имени, как в примере кода.

Надеюсь, это поможет.

0 голосов
/ 13 августа 2010

Если у вас есть кнопки на самой электронной таблице, а не на форме, они фактически являются фигурами, хотя вы все равно можете назвать их btnSomethingOrOther.

Если вы хотите сделать их невидимыми, просто выполните итерации по фигурам на листе...

For Each control In ActiveSheet.Shapes
   If Mid(control.Name, 1, 3) = "btn" Then
       control.Visible = False
   End If
Next

Однако, если у вас есть действительная форма, которую вы используете, тогда первый ответ тоже подойдет.

0 голосов
/ 10 августа 2010
for i = 1 to 4 : me.controls("btnHere" & i).visible = false : next i

Если запустить из-за пределов формы, замените меня ссылкой на объект формы.

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