【问题标题】:VBA - Userform - Combobox - Select Workbook/SheetVBA - 用户窗体 - 组合框 - 选择工作簿/工作表
【发布时间】:2015-07-24 12:13:59
【问题描述】:

我最近问了另一个问题,它帮助我使用“组合框”用户表单达到了一定程度,但现在需要更多帮助才能让我完成任务。

我创建了一个用户表单,它有 2 个组合框,1 个显示所有打开的 Excel 工作簿,1 个显示所选工作簿的工作表。

我尝试创建一个按钮,该按钮使用工作表框下选择的值来复制指定工作表中的数据。

  • 我遇到的问题是将工作表组合框 (Cb_Ws) 值与将“单击”按钮的 VBA 命令相关联,选择该工作表,然后复制特定范围,例如Worksheets("Cb_Ws.Value").Range("X77:X84").Copy

恐怕我刚开始时我的知识不是很好,尽管我认为我在正确的路线附近。

这是我目前得到的代码:

Option Explicit

Dim wb As Workbook
Dim ws As Worksheet

Private Sub Cb_Wb_Change()
Me.Cb_Ws.Clear
On Error Resume Next
For Each ws In Workbooks(Me.Cb_Wb.Value).Worksheets
Me.Cb_Ws.AddItem ws.Name
Next ws
End Sub

Private Sub CommandButton1_Click()

Dim Worksheets as (Cb_Ws.Value)

Worksheets.Range("X77:X84").Copy

End Sub


Private Sub UserForm_Initialize()

For Each wb In Application.Workbooks
Me.Cb_Wb.AddItem wb.Name
Me.Label2.Caption = "Select WorkSheet:"
Me.Label1.Caption = "Select Workbook:"
Next wb

End Sub

【问题讨论】:

    标签: excel combobox vba


    【解决方案1】:

    这是一种不正确的处理对象的方式。这是你正在尝试的吗?

    Private Sub CommandButton1_Click()
       Dim ws As Worksheet
    
       Set ws = Workbooks(Cb_Wb.Value).Sheets(Cb_Ws.Value)
    
       ws.Range("X77:X84").Copy
    End Sub
    

    【讨论】:

    • 这正是我所追求的。 - 非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-04
    • 2015-01-18
    • 1970-01-01
    相关资源
    最近更新 更多