VBA隐藏得很好的宏

时间:2013-08-29 00:44:55

标签: excel vba

我正在处理一个继承的电子表格(1998年创建日期,或者更早),需要更改对话框工作表上的参考。我无法在运行宏列表中看到宏,或者类似的东西,表单本身没有出现在VBA项目资源管理器窗口中,这听起来像是我可以在这里读到的其他问题的Excel 4.0宏。很多人建议从一开始就重写Excel 4.0宏,但问题是我实际上并不知道宏的作用。

具体来说,宏链接到一个命令按钮,当我点击“分配宏”时,宏的名称写在“宏名称”文本框中,但它实际上没有列在下拉列表中菜单。如果我尝试通过在“宏名称”文本框中键入相同的名称将此宏指定给另一个命令按钮,则会出现宏不可用的错误。
(截图链接:http://imgur.com/HlxvLV2

我尝试使用此处的解决方案(Cannot see excel sheet in VBE),因为我感兴趣的工作表实际上不是工作表,所以我将ws声明为对话框工作表。

Public Sub TestAccessToXL4MacroSheet()

Dim ws As DialogSheet
Set ws = ThisWorkbook.ActiveSheet ' succeeds
Debug.Print ws.Name               ' outputs "Macro1"
Set ws = Worksheets("Macro1")     ' fails: "Subscript out of range"

End Sub

结果是工作表的名称出现在即时窗口中。 (截图链接:http://imgur.com/C1L2SQP

这是预期的结果吗?我已经可以看到工作表名称作为选项卡,我想在VBA编辑器中看到工作表本身。

我正在努力做到这一点,所以请随时在孩子的水平上写下任何建议!谢谢!

1 个答案:

答案 0 :(得分:2)

不确定您是否仍在寻找解决方案,但我是新来的,只是看到了这个!

XL4工作表(例如,您的macro1工作表)在VB IDE中不可见。

要在Excel中查看工作表,请右键单击其中一个可见工作表选项卡,然后从菜单中选择“取消隐藏...”命令。您可以选择macro1工作表并单击“确定”。

或者,试试这段代码......

    Sub ShowAllSheets()
    Dim sh As Worksheet
    For Each sh In ActiveWorkbook.Sheets
    sh.Visible = True
    Next
    End Sub

然后您需要手动将XL4代码转换为VBA。

相信这有帮助。