使用字符串调用Sub - VBA

时间:2016-03-31 11:22:38

标签: excel vba excel-vba

我正在尝试使用Application.RunCallByName构建基于此问题Trying to call a Sub with a String - VBA的答案调用带字符串的Sub的代码,但我得到了:

  

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

当我尝试Application.Run

  

运行时错误'438':   Object不支持此属性或方法

当我尝试CallByName时。

调用也称为Subs的是同一张Sheets("Rozpad_hodnocení")

我正在尝试浏览该工作表上名称中包含索引编号的所有选项按钮,以查找名称中带有“ne”的Obuttons。有了这个找到的索引,我想调用一个索引号相同的子名称和名字中的“ne”。 被称为潜艇就像这样:

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

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

1 个答案:

答案 0 :(得分:0)

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