【问题标题】:Excel: Button action code - Why can't I use a Workbook And Sheet ModuleExcel:按钮操作代码 - 为什么我不能使用工作簿和工作表模块
【发布时间】:2017-05-06 21:35:13
【问题描述】:

我有一个带有模板(带有 vba 代码和按钮操作)的个人工作图,我会在需要时将其复制到工作表中。它创建一个工作表来快速访问许多 > 25 个工作表,就像一个假弹出窗口(excel 2016 macos)。当我将它直接编程到工作表模块中时,它确实运行良好。它收集工作表并使用以下代码创建按钮。

Set btnRng = TOC_WS.Range(Cells(lastRow, btnCol), Cells(lastRow, btnCol))
            Set btn = TOC_WS.Buttons.Add(btnRng.Left, btnRng.Top, btnRng.Width, btnRng.Height)
            With btn
                .OnAction = "btnAction"
                .Caption = WS.Name
                .Name = WS.Name
            End With

还有按钮子......

Sub btnAction()
   ......
End Sub

但是现在由于某种原因,当被调用的子在工作表模块中时它不起作用。我收到找不到它的通知。如果我将它放入代码模块中,它就可以工作。我当然搜索过网络,但找不到任何说它无法正常工作的内容。

我的问题 - 如何让按钮操作恢复到与其余代码相同的工作表模块?

【问题讨论】:

    标签: vba excel button


    【解决方案1】:

    一般来说,当例程是工作表的成员时,工作表的名称隐含地是例程名称的一部分。

    btn.OnAction = "Sheet1.btnAction"
    

    或者,在您的代码中,您希望将其绑定到 TOC_WS 表中的例程:

    btn.OnAction = TOC_WS.CodeName & ".btnAction"
    

    另外,如果要将例程移动到代码模块ThisWorkbook

    btn.OnAction = "ThisWorkbook.btnAction"
    

    【讨论】:

    • 感谢您的评论,但我仍然得到相同的结果。该错误给出了按钮操作的完整路径。 “德宏 PP50Begroting.xlsm!TOC.btnAction kan niet worden gevonden。”
    • 你会尝试编辑:TOC_WS.CodeName 而不是TOC_WS.Name
    • 呵呵,很有趣,我以前试过这个,但没用,但现在可以了。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-04
    • 1970-01-01
    • 2014-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多