0

我有一个工作簿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。我认为这些时期对下面评论和回复中发布的解决方案造成了一些麻烦,因为当我删除这些时期时,这些技术是成功的。

4

1 回答 1

1

刚刚怎么样

Application.Run (wb1.Name & "!MacroName")
于 2012-10-31T00:26:03.193 回答