【发布时间】:2016-03-31 11:22:37
【问题描述】:
我正在尝试使用Application.Run 或CallByName 来构建我的代码,该代码根据对这个问题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变量中删除括号。