У меня есть пользовательская форма в Excel VBA с флажком для каждого месяца.Loop Through CheckBox Элементы управления в VBA UserForm
Выбрав один или несколько аргументов, необходимо указать месяц, который будет отображаться на листе. Я копировал код 12 раз, и он работает, но я уверен, что есть лучший способ сделать это с помощью цикла For
.
Это часть моего кода (он идет в 12 раз):
If CheckBox1.Value = True Then
ActiveSheet.PivotTables("PivotTable1").PivotFields("month").PivotItems("1").Visible = True
Else
ActiveSheet.PivotTables("PivotTable1").PivotFields("month").PivotItems("1").Visible = False
End If
If CheckBox2.Value = True Then
ActiveSheet.PivotTables("PivotTable1").PivotFields("month").PivotItems("2").Visible = True
Else
ActiveSheet.PivotTables("PivotTable1").PivotFields("month").PivotItems("2").Visible = False
End If
Я попытался записывания:
for i in range 1 to 12
, а затем писать свой код, но там, кажется, быть проблемой, когда Вместо чисел я помещал «i».
Там кажется, является проблемой с этой строкой ".OLEObjects" it raises en error "метод или элемент данных не найден" – user1040563
@ user1040563 .. он изменен .. – matzone
'OLEObjects' относится к элементам управления на листе, я думаю. В «UserForm» (по крайней мере, до Excel 2003) мы, вероятно, хотим «Controls» ... –