【问题标题】:Call a Sub with a String - VBA用字符串调用 Sub - VBA
【发布时间】:2016-03-31 11:22:37
【问题描述】:

我正在尝试使用Application.RunCallByName 来构建我的代码,该代码根据对这个问题Trying to call a Sub with a String - VBA 的答案使用字符串调用Sub,但我得到了:

运行时错误“1004”: 应用程序定义或对象定义的错误

当我尝试 Application.Run 时

运行时错误“438”: 对象不支持此属性或方法

当我尝试 CallByName 时。

调用以及调用 Subs 在同一张表中 Sheets("Rozpad_hodnocení")

我正在尝试浏览该表上名称中带有索引号的所有选项按钮,以找到名称中带有“ne”的 Obuttons,这很有效。有了这个找到的索引,我想用相同的索引号和名称中的“ne”调用一个子。 调用的 subs 是这样的:

OB9Ne_Click()
OB10Ne_Click()
OB11Ne_Click()

我无法将我的代码移动到表单或模块中

以下是代码示例:

Sub adsf()
    Dim s As Shape
    Dim Pro As String
    For Each s In Sheets("Rozpad_hodnocení").Shapes
        If s.Type = 12 And s.Name Like "*Ne" Then
            Pro = s.Name + "_Click()"
            Application.Run Pro
            'CallByName List3, Pro, VbMethod
            'CallByName Sheets("Rozpad_hodnocení"), Pro, VbMethod
        End If
    Next
End Sub

也许上一个问题的答案已经有了,但我没有设法调整我的代码。

【问题讨论】:

  • OB9Ne_Click() 公开吗?
  • 如果是工作表模块,则必须使用CallByName 尝试从Pro 变量中删除括号。

标签: vba excel


【解决方案1】:

感谢@Kyle,我将Subs 更改为Public,@Macro Man 建议从Pro 中删除括号,并将它们结合使用。

【讨论】:

    猜你喜欢
    • 2020-08-19
    • 2011-12-04
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多