Excel Basic VBA
我的VBA代码有一个小问题。代码的目的是更新第一个“数据”透视表,然后更新所有其他透视表 基本上我有一张数据表,每个月一张。在任何月表中,都可以按一个按钮激活宏,首先更新数据表(数据透视表),然后更新所有其他数据透视表,最后返回到激活宏的月表。到目前为止,我有以下VBA代码:Excel Basic VBA,vba,excel,Vba,Excel,我的VBA代码有一个小问题。代码的目的是更新第一个“数据”透视表,然后更新所有其他透视表 基本上我有一张数据表,每个月一张。在任何月表中,都可以按一个按钮激活宏,首先更新数据表(数据透视表),然后更新所有其他数据透视表,最后返回到激活宏的月表。到目前为止,我有以下VBA代码: Sub sheetupdate() ' ' sheetupdate Macro ' Application.Goto Range("A1"), True Range(ActiveCell.Address).
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
唯一的问题是运行宏后返回正确的工作表。例如,当从二月工作表运行宏时,它会返回到一月工作表中的单元格A1,而不是我希望的二月工作表中的单元格A1。很高兴,您可以,并且,无需激活
或选择,即可执行所有这些操作:
Sub sheetupdate()
'
' sheetupdate Macro
Sheets("Data").PivotTables("PivotTable1").RefreshTable
ActiveWorkbook.RefreshAll
End Sub
你应该完成你想要的。将sheetname传递给您_clickevent简单性太好了。谢谢您的帮助!很好用!
Sub sheetupdate(sheetname as Excel.Worksheet)
'
' sheetupdate Macro
'
' Dataupdate Macro
'
Sheets("Data").PivotTables("PivotTable1").RefreshTable
ThisWorkbook.RefreshAll
sheetname.Activate
End Sub