如何让Excel在更换工作表时select相同的单元格?

我有Excel工作簿3张。 我想要使​​用一个macros,它会在更换图纸时select相同的单元格。

例:
当我切换到sheet2时,我在sheet1单元格A3中。 我希望Sheet2中的A3被选中。 同样的事情,当我切换到sheet3。

可能吗?
我尝试使用事件sheet_activate,sheet_deactivate和sheet_change。 最后一个肯定是错的。

这是一个单向的例子。 如果从Sheet1开始并selectSheet2或Sheet3,则将保留与Sheet1上相同的地址。

在标准模块中,包含单行:

Public addy As String 

在Sheet 1代码区域中,包括以下事件macros:

 Private Sub Worksheet_SelectionChange(ByVal Target As Range) addy = ActiveCell.Address End Sub 

在Sheet2和Sheet3代码区域中,包括以下事件macros:

 Private Sub Worksheet_Activate() If addy <> "" Then Range(addy).Select End If End Sub 

你很近 每次触发SheetSelectionChange事件时,都会使用模块级variables来存储ActiveCell地址:

 Dim ActiveCellAddress As String Private Sub Workbook_SheetActivate(ByVal Sh As Object) Application.ScreenUpdating = False Sh.Range(ActiveCellAddress).Activate Application.ScreenUpdating = True End Sub Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) ActiveCellAddress = ActiveCell.Address End Sub 

我使用下面的macros来select工作簿中所有工作表上的单元格A1。 我将此macros分配给工具栏上的button。 您可以对其进行修改,以便在更改工作表时使用。

 Sub Select_Cell_A1_on_all_Sheets() Application.ScreenUpdating = False On Error Resume Next Dim J As Integer Dim NumSheets As Integer Dim SheetName As String CurrentSheetName = ActiveSheet.Name NumSheets = Sheets.Count For J = 1 To NumSheets SheetName = Sheets(J).Name Worksheets(SheetName).Activate Range("A1").Select Next J Worksheets(CurrentSheetName).Activate