VBA - 用户窗体 - 组合框 - Select Workbook/Sheet
VBA - Userform - Combobox - Select Workbook/Sheet
我最近问了另一个问题,这帮助我在 'combobox' 用户表单上达到了一定程度,但现在需要更多帮助才能让我完成任务。
我创建了一个用户窗体,它有 2 个组合框,1 个显示所有打开的 excel 工作簿,1 个显示 selected 工作簿的工作sheet。
我尝试创建一个按钮,该按钮使用工作sheet 框下的值 selected 从指定的 sheet.
复制数据
- 我遇到的问题是将工作sheet 组合框 (Cb_Ws) 值关联到 VBA 命令,该命令将 'on click' 按钮,select 有效 sheet 然后复制特定范围,例如工作sheets("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
这是处理对象的不正确方式。这是你正在尝试的吗?
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
我最近问了另一个问题,这帮助我在 'combobox' 用户表单上达到了一定程度,但现在需要更多帮助才能让我完成任务。
我创建了一个用户窗体,它有 2 个组合框,1 个显示所有打开的 excel 工作簿,1 个显示 selected 工作簿的工作sheet。
我尝试创建一个按钮,该按钮使用工作sheet 框下的值 selected 从指定的 sheet.
复制数据- 我遇到的问题是将工作sheet 组合框 (Cb_Ws) 值关联到 VBA 命令,该命令将 'on click' 按钮,select 有效 sheet 然后复制特定范围,例如工作sheets("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
这是处理对象的不正确方式。这是你正在尝试的吗?
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