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

时间:2016-06-27 15:54:12

标签: excel vba listbox userform

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

我有一个名为A的只读工作簿,上面有一个按钮1。通过单击按钮1,将弹出包含列表框的用户表单和带宏的按钮2。结果将打印在工作簿A的表2中。

我想要做的是,使用另一个工作簿B,调用VBA脚本打开工作簿A并单击按钮1以激活用户窗体。然后,选择所有行并单击按钮2运行宏。最后,将工作表B上的值复制到工作簿B.

为了简化问题,我写了一些代码来说明这个案例。

在练习册A上: 按钮1:

Public Sub Button1_Click()
    UserForm1.Show
End Sub

按钮2:

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。对不起,我不擅长编程,也解释这些杂乱的东西。但是,如果你们中的任何人能够帮助我,我将非常感激。感谢。

0 个答案:

没有答案