2015-11-25 2 views
0

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

Sheets("5. Resume").Select 

ActiveSheet.PivotTables("PivotTable1").PivotSelect "'Tarea IS'[All]", _ 
    xlLabelOnly, True 
ActiveSheet.PivotTables("PivotTable1").PivotCache.Refresh 

ActiveSheet.PivotTables("PivotTable2").PivotSelect "'Tarea IS'[All]", _ 
    xlLabelOnly, True 
ActiveSheet.PivotTables("PivotTable2").PivotCache.Refresh 

Sheets("6. Reg Err").Select 
ActiveSheet.PivotTables("PivotTable3").PivotCache.Refresh 
+0

поиск Простой Google 'сводным таблицам Excel vba' даст вам много результатов. Эта [ссылка] (http://www.thespreadsheetguru.com/blog/2014/9/27/vba-guide-excel-pivot-tables) даст вам удар. – ManishChristian

+0

Это освежающий результат сводной таблицы. –

+0

«Обновить» таблицы сводных таблиц, Pivottable1 и Pivottable2 –

ответ

2

Я прокомментирую ваш код для вас, если это помогает:

'Select the sheet named "5. Resume" 
Sheets("5. Resume").Select 

'Select the pivot table named "PivotTable1" on the active sheet ("5. Resume") 
ActiveSheet.PivotTables("PivotTable1").PivotSelect "'Tarea IS'[All]", _ 
    xlLabelOnly, True 

'Refresh the data in "PivotTable1" on the selected sheet ("5. Resume") from the source 
ActiveSheet.PivotTables("PivotTable1").PivotCache.Refresh 

'Select the pivot table named "PivotTable2" on the active sheet ("5. Resume") 
ActiveSheet.PivotTables("PivotTable2").PivotSelect "'Tarea IS'[All]", _ 
    xlLabelOnly, True 

'Refresh the data in "PivotTable1" on the selected sheet ("5. Resume") from the source 
ActiveSheet.PivotTables("PivotTable2").PivotCache.Refresh 

'Select the sheet named "6. Reg Err" 
Sheets("6. Reg Err").Select 

'Refresh the data in "PivotTable3" on the selected sheet ("6. Reg Err") from the source 
ActiveSheet.PivotTables("PivotTable3").PivotCache.Refresh 

Линии, где вы выбираете сводную таблицу, кажется, не имеет значения, как вы меняете выбор вскоре после того, как ничего не делая на выбранный элемент (я предполагаю, что это записано). Вы можете удалить строки с .PivotSelect, и это не изменит результат.

ActiveSheet.PivotTables("PivotTable1").PivotSelect "'Tarea IS'[All]", _ 
     xlLabelOnly, True 

В самом деле, следующий код позволяет достичь того же в гораздо более короткие моды:

With Sheets("5. Resume") 
    .PivotTables("PivotTable1").PivotCache.Refresh 
    .PivotTables("PivotTable2").PivotCache.Refresh 
End With 
Sheets("6. Reg Err").PivotTables("PivotTable3").PivotCache.Refresh 
+0

Спасибо и всем остальным полезным комментаторам. Мне жаль, если мой вопрос был слишком конкретным, я не программист VBA. –

Смежные вопросы