У меня есть несколько переключателей в Excel (Mac 2011 года), и они сгруппированы по групповым полям.

Я хочу сделать групповую коробку невидимой. Я искал в интернете и обнаружил, что могу сделать это с помощью VBA, введя:

ActiveSheet.GroupBoxes.Visible = False

в окне VBA, которое соответствует соответствующему рабочему листу. Я сделал это, но, кажется, нет никакой разницы. Должен ли я сделать что-то еще, чтобы активировать изменение?

2 ответа2

2

Попробуйте назвать это конкретно по имени

ActiveSheet.Shapes("Group Box 1").Visible = False

Убедитесь, что Application.ScreenUpdating = True например

Sub hidethings()
Application.ScreenUpdating = False
ActiveSheet.Shapes("Group Box 2").Visible = False
Application.ScreenUpdating = True
End Sub

Если у вас есть куча, которую вы хотите скрыть, вы можете сделать что-то вроде этого -

Sub tellme()
Dim thing As Shape
For Each thing In ActiveSheet.Shapes
 If thing.FormControlType = xlGroupBox Then
   thing.Visible = msoFalse
 End If
Next
End Sub
1

Похоже, вы ввели одну строку кода VBA, но не поместили ее в подпрограмму, которая может быть выполнена. Следовательно, то, что вы сделали, не имеет никакого эффекта.

Попробуйте следующее:

  1. Откройте панель редактора VBA, нажав Alt+F11.
  2. В открывшемся окне вставьте новый модуль, нажав Insert > Module .
  3. В появившемся текстовом поле вставьте следующее:

    Sub HideBoxes() ActiveSheet.Рамки группа.Visible = False End Sub
    
  4. Поместите курсор в любое место внутри кода и нажмите F5, чтобы выполнить код.

Это должно скрыть все групповые блоки на активном листе.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .