Excel Basic VBA

我的VBA代码有一个小问题。 代码的目的是更新第一个“数据”数据透视表,然后更新所有其他数据透视表。

基本上我有一个数据表,每个月一张。 从任何月份开始,应该可以按下一个激活macros的button,首先更新数据表(数据透视表),然后更新所有其他数据透视表,然后返回到月份表格,macros表格被激活。 到目前为止,我有以下的VBA代码:

Sub sheetupdate() ' ' sheetupdate Macro ' Application.Goto Range("A1"), True Range(ActiveCell.Address).Name = "StartCell" ' Dataupdate Macro ' Sheets("Data").Select ActiveSheet.PivotTables("PivotTable1").RefreshTable Application.Goto "StartCell" ActiveCell.Offset(7, 22).Range("A1").Select ActiveWorkbook.RefreshAll Application.Goto "StartCell" End Sub 

我唯一的问题是运行macros后返回到正确的表。 例如,当从二月份工作表运行macros时,它会返回到一月份工作表中的单元格A1,而不是按照我的意愿返回到二月份工作表中的单元格A1。

很高兴为你,你可以,而且应该 ,所有这一切,而无需ActivateSelect

 Sub sheetupdate() ' ' sheetupdate Macro Sheets("Data").PivotTables("PivotTable1").RefreshTable ActiveWorkbook.RefreshAll End Sub 
 Sub sheetupdate(sheetname as Excel.Worksheet) ' ' sheetupdate Macro ' ' Dataupdate Macro ' Sheets("Data").PivotTables("PivotTable1").RefreshTable ThisWorkbook.RefreshAll sheetname.Activate End Sub 

应该完成你想要的。 传入你的单击名称_Click事件