Я работаю на книгу Excel, которая содержит ряд рабочих листов, которые все работают очень похожим образом:
1. Они имеют PivotTable1
2. Они имеют PivotChart1
3. 4 слайсер используются для фильтрации данных
4. И, наконец, я создал форму, с VBA кодом за ними, чтобы позволить мне контролировать функциональность DrilldownExcel 2010 VBA Shape Control
Это Взяло некоторое время, исследуя различные места для образца код, запись и переваривание того, что происходит с макросами, чтобы добраться до того места, где я есть. И я очень доволен текущим результатом.
Однако, сейчас я на сцене, где я хотел бы убедиться, что код как можно более эффективным, чтобы
1. Держите размер файла как можно
2. Убедитесь, что рабочая скорость в лучшем случае
Итак, к моей проблеме.
У меня есть 4 кнопки, которые сделаны со стандартными формами Excel. Мой код VBA для каждой кнопки выглядит следующим образом:
Sub Top10SelectorByValue()
'
' Top10Selector Macro
'
Range("Q15").Select
'
' Clear All Filters
'
ActiveSheet.PivotTables(ActiveCell.PivotTable.Name).PivotFields(ActiveCell.PivotField.Name). _
ClearAllFilters
'
' Apply Top 10 Filter
'
ActiveSheet.PivotTables(ActiveCell.PivotTable.Name).PivotFields(ActiveCell.PivotField.Name). _
PivotFilters.Add Type:=xlTopCount, DataField:=ActiveSheet.PivotTables(_
ActiveCell.PivotTable.Name).PivotFields("Sum of LineTotalValue"), Value1:=10
'
' Format Shapes
'
ActiveSheet.Shapes(Application.Caller).ThreeD.BevelTopType = IIf(ActiveSheet.Shapes(Application.Caller).ThreeD.BevelTopType = 3, 7, 3)
ActiveSheet.Shapes("btnTop30").ThreeD.BevelTopType = 3
ActiveSheet.Shapes("btnTop20").ThreeD.BevelTopType = 3
ActiveSheet.Shapes("btnSelectAll").ThreeD.BevelTopType = 3
End Sub
Как уже упоминалось, у меня есть этот код для каждого из моих кнопок, которые представляют собой TOP30, TOP20, и в Топ 10 вариантов SelectAll для моего клиента нажать на кнопку.
Так вот мои 2 вопроса:
1. Можно ли сделать этот код более эффективным, так что я могу установить все кнопки, с тем же стилем, за исключением одного щелчка любым другим способом, чем я дружнее Вот.
2. Возможно ли иметь только один экземпляр этого кода, доступный для всех кнопок. 3. Я хотел бы, чтобы гарантировать, что по крайней мере один параметр выбран из 4 кнопок, тем самым оставляя его в это «вниз» состояние
Большое спасибо, я новичок VBA, поэтому, пожалуйста, медведь со мной
Спасибо за этот Тим, проработал угощение. Теперь мне нужно разобраться, как правильно применить фильтр для каждой кнопки :) –
См. Мое редактирование выше ... –
Тим, я не могу вас поблагодарить. Это работает как шарм и дает мне представление о том, как я могу применить его к другим кнопкам. Еще раз спасибо –