Excel Basic VBA

Excel Basic VBA,vba,excel,Vba,Excel,我的VBA代码有一个小问题。代码的目的是更新第一个“数据”透视表,然后更新所有其他透视表 基本上我有一张数据表,每个月一张。在任何月表中,都可以按一个按钮激活宏,首先更新数据表(数据透视表),然后更新所有其他数据透视表,最后返回到激活宏的月表。到目前为止,我有以下VBA代码: Sub sheetupdate() ' ' sheetupdate Macro ' Application.Goto Range("A1"), True Range(ActiveCell.Address).

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

基本上我有一张数据表,每个月一张。在任何月表中,都可以按一个按钮激活宏,首先更新数据表(数据透视表),然后更新所有其他数据透视表,最后返回到激活宏的月表。到目前为止,我有以下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

唯一的问题是运行宏后返回正确的工作表。例如,当从二月工作表运行宏时,它会返回到一月工作表中的单元格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