激活工作簿Excel 2010中的隐藏工作表
我有一个名为“摘要”的摘要表,其中有一个链接。 此链接转到以下子节点:
Sub WTButton() Call GoToWorksheet("Wilmington") End Sub
正如你所看到的,这会调用另一个名为GoToWorksheet
子。 它看起来像这样:
Sub GoToWorksheet(strWorksheet As String) On Error GoTo Err_GoToWorksheet With Worksheets("Summary") If Worksheets(strWorksheet).Visible = xlSheetHidden Then Worksheets(strWorksheet).Visible = xlSheetVisible End If Worksheets(strWorksheet).Activate End With Exit_GoToWorksheet: Exit Sub Err_GoToWorksheet: MsgBox Err.Description, vbCritical, "GoToWorksheet Error" Resume Exit_GoToWorksheet End Sub
我希望工作表保持隐藏状态,直到最终用户准备向其中添加数据为止。 如果工作表已经可见,整个系统工作的很好。 如果工作表已隐藏,则不会显示该工作表,也不会激活它。
我究竟做错了什么?
链接到文件: https : //www.dropbox.com/s/wsv9al410m7kwda/Book1Test.xlsm
没有testing,但应该工作…
Sub GoToWorksheet(strWorksheet As String) On Error GoTo Err_GoToWorksheet With Worksheets(strWorksheet) If .Visible = xlSheetHidden Then .Visible = xlSheetVisible End If .Activate End With Exit_GoToWorksheet: Exit Sub Err_GoToWorksheet: MsgBox Err.Description, vbCritical, "GoToWorksheet Error" Resume Exit_GoToWorksheet End Sub
With
不是必需的,它不会testingxlVeryHidden
我会这样写例程:
Option Explicit 'This makes sure I find spelling errors Sub GoToWorksheet(strWorksheet As String) On Error GoTo Err_GoToWorksheet 'Should only fail if worksheet name is wrong Worksheets(strWorksheet).Visible = xlSheetVisible 'just make it visible - don't care what state it was in previously Worksheets(strWorksheet).Activate Exit Sub Err_GoToWorksheet: MsgBox Err.Description, vbCritical, "GoToWorksheet Error" End Sub
并进行testing,以发现错误的确切位置,我将注释掉所有的error handling
以下是我做的工作:我摆脱了GoToWorksheet
子例程。 然后我做WTButton
子看起来像这样:
Sub WTButton() Worksheets("Wilmington").Visible = xlSheetVisible Worksheets("Wilmington").Activate Range("A3").Select End Sub
这使得它更直接[注:我从别人手中接pipe了这个项目]
无论如何,感谢所有的build议。