我有一个工作簿Wbk1
,其中工作表有一个ActiveX按钮。我想从另一个工作簿Wbk2
运行按钮的关联Sub。将Sub的代码复制到Wbk2
是不切实际的,因为它反过来从Wbk1
调用一堆函数。我尝试了以下方法:
Sub pushButton()
Dim obj As OLEObject
Dim btn As MSForms.CommandButton
For Each obj In Wkb1.Sheets("testSheet").OLEObjects
If TypeOf obj.Object Is MSForms.CommandButton Then
set btn=obj.Object
debug.print btn.Caption 'used to test whether or not For loop is picking up button
obj.Activate
SendKeys " "
End If
Next
End Sub
这不仅是一个不优雅的SendKeys()
黑客,但它不起作用;按钮获得焦点但不会被推动。我知道For循环正在迭代对象,包括CommandButton,因为我可以拿起按钮的标题。如何从Wbk2
?
编辑:有问题的实际文件名格式为123A_1.0-2.0.xlsm。我认为这些时期对于下面的评论和回复中发布的解决方案造成了一些麻烦,因为当我删除这些时期时,这些技术都是成功的。
答案 0 :(得分:1)
如何
Application.Run (wb1.Name & "!MacroName")