2013-08-05 5 views
1

Im с использованием функции GetFolder для объединения нескольких файлов excel.Закрытие окна браузера с помощью VBA, excel

Folder = GetFolder() 
Folder = Folder & "\" 
FName = Dir(Folder & "*.xl*") 
... 

Function GetFolder() 
    'Declare a variable as a FileDialog object. 
    Dim fd As FileDialog 

    'Create a FileDialog object as a Folder Picker dialog box. 
    Set fd = Application.FileDialog(msoFileDialogFolderPicker) 
    fd.Title = "Select Excel Workbook(s) Folder" 
    'Declare a variable to contain the path 
    'of each selected item. Even though the path is a String, 
    'the variable must be a Variant because For Each...Next 
    'routines only work with Variants and Objects. 
    Dim vrtSelectedItem As Variant 

    'Use a With...End With block to reference the FolderDialog object. 
    With fd 

    'Use the Show method to display the File Picker dialog box and return the user's action. 
    'The user pressed the action button. 
    If .Show = -1 Then 

     'Step through each string in the FileDialogSelectedItems collection. 
     For Each vrtSelectedItem In .SelectedItems 

     'vrtSelectedItem is a String that contains the path of each selected item. 
     'You can use any file I/O functions that you want to work with this path. 
     'This example simply displays the path in a message box. 
     GetFolder = vrtSelectedItem 

     Next vrtSelectedItem 
    'The user pressed Cancel. 
    Else 
    End If 
    End With 

    'Set the object variable to Nothing. 
    Set fd = Nothing 


End Function 

при активации функции, окно браузера для Windows открывает и позволяет мне выбрать нужную папку на компьютере, а затем переходит к остальной части кода. проблема в том, когда я хочу закрыть браузер, не выбрав папку, которую я нажимаю на кнопку закрытия (X) в верхнем углу, окно закрывается, но код продолжается, как если бы я выбрал папку. Как я могу закрыть его и «End Sub»?

ответ

1

Попробуйте добавить просто If Statement прямо после вызова GetFolder function, как это:

If IsEmpty(Folder) Then Exit Sub 
+0

Я хочу, чтобы закрыть, когда я нажимаю X кнопки (закрыть), а не когда папка пуста – user1040563

+0

@ user1040563, если нажать X, тогда ваша 'папковая переменная' пуста - это то, что я проверяю. Я не проверяю, есть ли что-нибудь в вашей папке. Добавьте эту строку и убедитесь, что это не то, что вы ищете. –

+0

Извините, вы были правы. большое спасибо – user1040563

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