我正在处理继承的电子表格(创建日期为 1998 年或更早),需要更改对话框表上的引用。我在运行宏列表中看不到宏或类似的东西,工作表本身没有显示在 VBA 项目资源管理器窗口中,这听起来像是我在这里读过的其他问题中的 Excel 4.0 宏. 很多人建议从一开始就重写 Excel 4.0 宏,但问题是我实际上并不知道宏的作用。
具体来说,宏链接到一个命令按钮,当我点击“分配宏”时,宏的名称写在“宏名称”文本框中,但实际上并没有在下拉菜单中列出。如果我尝试通过在“宏名称”文本框中键入相同的名称来将此宏分配给另一个命令按钮,则会收到宏不可用的错误消息。
(截图链接:http: //imgur.com/HlxvLV2)
我在这里尝试使用该解决方案(在 VBE 中看不到 excel 表),因为我感兴趣的表实际上不是工作表,所以我将 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 编辑器中查看工作表本身。