2015-05-13 2 views
1

Недавно я задал другой вопрос, который помог мне дойти до определенного момента с помощью пользовательской формы «combobox», но теперь мне нужна дополнительная помощь, чтобы получить меня за линию, пожалуйста.VBA - Userform - Combobox - Select Workbook/Sheet

Я создал пользовательскую форму, которая имеет 2 comboboxes, 1, который отображает все открытые книги excel и 1, который отображает листы для выбранной книги.

Я попытался создать кнопку, которая использует значение, выбранное в поле листа, чтобы скопировать данные с указанного листа.

  • Проблема у меня в связывающем листе выпадающего значения (Cb_Ws) в команду VBA, которая будет «по щелчку» кнопки, выберите эту таблицу, а затем скопировать определенный диапазон, например, Рабочие листы («Cb_Ws.Value»). Диапазон («X77: X84»). Копия

Я боюсь, что мои знания невелики, поскольку я начинаю, хотя я думаю, что я где-то рядом с правильные линии.

Вот код, который я получил до сих пор:

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 

ответ

0

Это неправильный способ работы с объектами. Это то, что вы пытаетесь?

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 
+0

Это именно то, что я был после. - Огромное спасибо. – Barkered

Смежные вопросы