我有一个工作簿Wbk1
,其中工作表有一个 ActiveX 按钮。我想从另一个工作簿运行按钮的关联 Sub Wbk2
,. 仅仅将 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()
hack,而且行不通;按钮获得焦点,但没有被按下。我知道 For 循环正确地遍历对象,包括 CommandButton,因为我可以获取按钮的标题。我如何点击这个按钮(从而运行它的私有子)Wbk2
?
编辑:有问题的实际文件名格式为 123A_1.0-2.0.xlsm。我认为这些时期对下面评论和回复中发布的解决方案造成了一些麻烦,因为当我删除这些时期时,这些技术是成功的。