【发布时间】:2013-09-01 06:37:12
【问题描述】:
我正在处理继承的电子表格(创建日期为 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 编辑器中查看工作表本身。
【问题讨论】:
-
请添加屏幕截图(因为您没有代表这样做,只需上传到 Imgur.com 并将链接添加到您的问题)。据我所知,您无法从 VBE 中隐藏 Worksheet 对象。此外,如果您做了一些代码来尝试调试(“将 ws 声明为对话框表”——这是什么意思???)请包含您的代码。