【问题标题】:VBA Well-hidden macroVBA 隐藏的宏
【发布时间】: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 声明为对话框表”——这是什么意思???)请包含您的代码。

标签: excel vba excel-4.0


【解决方案1】:

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

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

或者,试试

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-04
    相关资源
    最近更新 更多