2014-02-06 3 views
0

Я разрабатываю код VBA с помощью форм. У меня есть кнопка, позволяющая пользователю выбирать книгу с помощью FileDialog. Файл рабочей книги может содержать 4 или 5 листов. У меня есть поле со списком.Excel Пользовательские формы в vba

Мне не нужно открывать книгу в списке выбитых книг, перечисленных в поле со списком.

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

Private Sub CommandButton2_Click() 
Set myfile = Application.FileDialog(msoFileDialogOpen) 
    With myfile 
    .Title = "Choose File" 
    .AllowMultiSelect = False 
     If .Show <> -1 Then 
     Exit Sub 
     End If 
Fileselected = .SelectedItems(1) 
    End With 
With Fileselected 
    For i = 1 To Sheets.Count 
      ComboBox2.AddItem Sheets(i).Name 
    Next i 
End With 

ответ

0

В настоящее время Sheets относится к текущей книге, как вы ничего не делаете с Fileselected.

Вы должны открыть выделенный файл, иначе как вы можете изучить его содержимое?

Set myfile = Application.FileDialog(msoFileDialogOpen) 
With myfile 
    .Title = "Choose File" 
    .AllowMultiSelect = False 
    If .Show <> -1 Then 
     Exit Sub 
    End If 

    Fileselected = .SelectedItems(1) 
End With 

Dim doc As Workbook 
Set doc = Application.Workbooks.Open(Fileselected) 

With doc 
    For i = 1 To .Sheets.Count 
     ComboBox2.AddItem .Sheets(i).Name 
    Next i 

    .Close 
End With 
+0

Thank You Alex! – user3279667

+0

After.AllowMultiSelect вы можете добавить '.Filters.Add" документы Excel "," * .xls; * .xlsx; * .xlsm ", 1', чтобы фильтровать документы excel –

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