点击单元格redirect到其他表单

我有一个代码隐藏了我的电子表格中除了一个之外的所有表单。 另外,在主表单上,当我双击列E上的一个单元格时,它将我redirect到一个隐藏的表单。 问题在于它将我重新指向错误的表单,我不知道为什么。 看下面的代码。

当我点击单元格“E3”时,我想要转到“Sheet 1”,而是将其重新定向到“Sheet 2”。 所有这些都发生在我被redirect到下面直接提到的工作表,而不是所需的工作表上。

Private Sub Worksheet_Activate() Dim ws As Worksheet For Each ws In ThisWorkbook.Worksheets If ws.Name = "Main" Then ws.Visible = True Else ws.Visible = False End If Next ws End Sub Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Select Case Target.Address Case "$E$3" Sheets("Sheet 1").Visible = True Sheets("Sheet 1").Activate Case "$E$4" Sheets("Sheet 2").Visible = True Sheets("Sheet 2").Activate Case "$E$5" Sheets("Sheet 3").Visible = True Sheets("Sheet 3").Activate End Select End Sub 

我会虚心地build议您摆脱每个工作表代码表中的重复代码,并将所有可操作的代码汇总到ThisWorkbook代码表中。

 Option Explicit Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean) If LCase(Sh.Name) = "main" Then Cancel = True Select Case Target.Address Case "$E$3" Worksheets("Sheet1").Visible = True '<~~ see footnote ¹ Worksheets("Sheet1").Activate Case "$E$4" Worksheets("Sheet2").Visible = True Worksheets("Sheet2").Activate Case "$E$5" Worksheets("Sheet3").Visible = True Worksheets("Sheet3").Activate Case Else 'do nothing End Select ElseIf Target.Address = "$A$1" Then Cancel = True Worksheets("Main").Visible = True Worksheets("Main").Activate End If End Sub Private Sub Workbook_SheetDeactivate(ByVal Sh As Object) Sh.Visible = False End Sub 

只要双击任何其他工作表上的A1,就会返回到主工作表。

¹ 我已将工作表的名称从工作Sheet 1更改为工作Sheet 1