单击另一个工作簿中用户窗体上的一个button

我在互联网上search了几天,但我仍然找不到出路。 如果我能从这里得到一些提示,我会非常感激。 以下是我要做的细节:

我有一个名为A的只读工作簿,其上有一个button1。 通过点击button1,popup包含列表框和带有macrosbutton2的用户表单。 结果将打印在工作簿A的工作表2上。

我想要做的是使用另一个工作簿B调用VBA脚本来打开工作簿A并单击button1以激活用户表单。 然后,select所有行并通过单击button2运行macros。最后,将表2上的值复制到工作簿B.

为了简化问题,我写了一些代码来说明这种情况。

在工作簿A:button1:

Public Sub Button1_Click() UserForm1.Show End Sub 

button2:

 Private Sub Button2_Click() Dim y As Long, z As Long z = 1 With Me.ListBox1 For y = 0 To .ListCount On Error GoTo EH If .Selected(y) = True Then For i = 1 To ListBox1.ColumnCount Sheets("Sheet2").Cells(z, i) = .List(y, i - 1) Next i z = z + 1 End If Next y End With Unload Me End EH: Unload Me End Sub 

用户窗体:

 Private Sub UserForm_Initialize() ListBox1.Clear With ListBox1 ListBox1.ColumnCount = 3 ListBox1.ColumnWidths = "60;60;60" .AddItem .List(0, 0) = 1 .List(0, 1) = 2 .List(0, 2) = 3 .AddItem .List(1, 0) = 4 .List(1, 1) = 5 .List(1, 2) = 6 End With End Sub 

在工作簿B上,我执行以下操作:

 Sub selectsheet() Application.Run Workbooks("WorksbookA").Worksheets("sheet1").Shapes("Button1").OnAction ListBox1.Selected(1) = True UserForm1.Button2_click Worksheets("sheet2").range("A1:B3").copy Workbooks("WorksbookB").Worksheets("sheet1").range("A1").select selection.paste End Sub 

vba似乎很好,因为我可以运行它。 但它坚持在Application.Run。 我很抱歉,我不擅长编程,也解释这个混乱的东西。 但是,如果你们中的任何一个能够帮我一把,我会非常感激。 谢谢。