Откройте файл, выберите лист и скопируйте его в файл с макросом - PullRequest
0 голосов
/ 14 июня 2019

это мой первый пост. Я хотел бы иметь код, который позволил бы пользователю выбрать файл с помощью filedialog, а затем заполнить имена листов из файла для пользовательской формы и скопировать выбранный лист в книгу с кодом.

Private wbSource As Workbook
Private wsSource As Worksheet

Private Sub UserForm_Initialize()

Dim I As Long
Dim filedlg As FileDialog

Set filedlg = Application.FileDialog(msoFileDialogFilePicker)
    With filedlg
        .Title = "Please select a file to list Sheets from"
        .InitialFileName = ThisWorkbook.Path
        .ButtonName = "Select"
        If .Show <> -1 Then End
    End With

Set wbSource = Workbooks.Open(filedlg.SelectedItems(1))

Me.ComboBox1.Clear
    With wbSource
        For I = 1 To .Worksheets.Count
            Me.ComboBox1.AddItem Sheets(I).Name
        Next
    End With
End Sub

Private Sub ComboBox1_Click()

Set wsSource = wbSource.Worksheets(Me.ComboBox1.Value)

wsSource.Copy ThisWorkbook.Sheets(Sheets.Count)
wbSource.Close SaveChanges:=False

Unload Me
End Sub

Код работает до тех пор, пока Excel не попытается скопировать лист, возникает ошибка времени выполнения 9 - нижний индекс выходит за пределы допустимого диапазона. Я объявил переменные неправильно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...