Excel 选择文件夹选择器VBA停止并不继续代码
我正在尝试选择一个文件夹,然后将该路径分配给我的文件变量。但是,选择文件夹后,代码将停止,并且不会转到下一步。有什么不对劲?下一步是“If selected_folder”“Then”,但它只是停止,调试器返回SubExcel 选择文件夹选择器VBA停止并不继续代码,excel,vba,Excel,Vba,我正在尝试选择一个文件夹,然后将该路径分配给我的文件变量。但是,选择文件夹后,代码将停止,并且不会转到下一步。有什么不对劲?下一步是“If selected_folder”“Then”,但它只是停止,调试器返回Sub Sub sheetCompare2() Application.ScreenUpdating = False Dim i As Integer Dim WS_Count As Integer Dim mDirs As String Dim pat
Sub sheetCompare2()
Application.ScreenUpdating = False
Dim i As Integer
Dim WS_Count As Integer
Dim mDirs As String
Dim path As String
Dim OutFile As Variant, SrcFile As Variant
Dim file As Variant
Dim wb As Workbook
Dim datevar As Variant
Dim datevar2 As Variant
Dim selected_folder As String
Set wb = ThisWorkbook
WS_Count = ActiveWorkbook.Worksheets.Count
OutFile = ActiveWorkbook.Name
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "Select a Folder"
If Application.FileDialog(msoFileDialogFolderPicker).Show = -1 Then
selected_folder = .SelectedItems(1)
End If
End With
If selected_folder <> "" Then
file = Dir(selected_folder)
End If
While (file <> "")
path = selected_folder + file
Workbooks.Open (path)
SrcFile = ActiveWorkbook.Name
datevar = Right(file, 9)
datevar2 = Left(datevar, 4)
....'and so on
End Sub
子表compare2()
Application.ScreenUpdating=False
作为整数的Dim i
Dim WS_计数为整数
将MDIR设置为字符串
将路径设置为字符串
Dim OutFile作为变量,SrcFile作为变量
作为变量的Dim文件
将wb设置为工作簿
Dim-datevar作为变量
Dim datevar2作为变体
将所选文件夹设置为字符串
设置wb=ThisWorkbook
WS\u Count=ActiveWorkbook.Worksheets.Count
OutFile=ActiveWorkbook.Name
使用Application.FileDialog(msoFileDialogFolderPicker)
.Title=“选择一个文件夹”
如果Application.FileDialog(msoFileDialogFolderPicker).Show=-1,则
所选文件夹=.SelectedItems(1)
如果结束
以
如果选择了文件夹“”,则
file=Dir(所选文件夹)
如果结束
While(文件“”)
路径=所选文件夹+文件
工作簿。打开(路径)
SrcFile=ActiveWorkbook.Name
datevar=Right(文件,9)
datevar2=左(datevar,4)
……等等
端接头
请尝试更改此部分代码:
If selected_folder <> "" Then
file = Dir(selected_folder)
End If
While (file <> "")
path = mDirs + file
Workbooks.Open (path)
SrcFile = ActiveWorkbook.Name
datevar = Right(file, 9)
datevar2 = Left(datevar, 4)
'....'and so on
如果选择了\u文件夹“”,则
file=Dir(所选文件夹)
如果结束
While(文件“”)
路径=mDirs+文件
工作簿。打开(路径)
SrcFile=ActiveWorkbook.Name
datevar=Right(文件,9)
datevar2=左(datevar,4)
“等等”
与:
如果选择了\u文件夹“”,则
File=Dir(选定的\u文件夹&“\”和“*.xls*”)
如果结束
文件“”时执行此操作
路径=所选文件夹和文件
工作簿。打开(路径)
SrcFile=ActiveWorkbook.Name
datevar=Right(文件,9)
datevar2=左(datevar,4)
File=Dir
'...
环
要使Dir
返回文件名,必须设置扩展名。至少*.*
用于在所有文件之间进行迭代。但是,要在Excel中打开文件,最好像上面的代码那样使用“*.xls*”
然后,要打开的文件的路径应该如上所述构建
您的代码没有显示如何重新定义
文件
,以使循环工作。在循环结束之前,可能有File=Dir
。如果没有,我添加了…请尝试更改这部分代码:
If selected_folder <> "" Then
file = Dir(selected_folder)
End If
While (file <> "")
path = mDirs + file
Workbooks.Open (path)
SrcFile = ActiveWorkbook.Name
datevar = Right(file, 9)
datevar2 = Left(datevar, 4)
'....'and so on
如果选择了\u文件夹“”,则
file=Dir(所选文件夹)
如果结束
While(文件“”)
路径=mDirs+文件
工作簿。打开(路径)
SrcFile=ActiveWorkbook.Name
datevar=Right(文件,9)
datevar2=左(datevar,4)
“等等”
与:
如果选择了\u文件夹“”,则
File=Dir(选定的\u文件夹&“\”和“*.xls*”)
如果结束
文件“”时执行此操作
路径=所选文件夹和文件
工作簿。打开(路径)
SrcFile=ActiveWorkbook.Name
datevar=Right(文件,9)
datevar2=左(datevar,4)
File=Dir
'...
环
要使Dir
返回文件名,必须设置扩展名。至少*.*
用于在所有文件之间进行迭代。但是,要在Excel中打开文件,最好像上面的代码那样使用“*.xls*”
然后,要打开的文件的路径应该如上所述构建
您的代码没有显示如何重新定义文件
,以使循环工作。在循环结束之前,可能有File=Dir
。如果没有,我添加了…file=Dir(选定的文件夹)
如果没有提供扩展名,则不会返回任何内容。当然,使用whiled字符。甚至“*.*”
。请检查我在回答中建议的代码。file=Dir(所选文件夹)
如果没有提供扩展名,则不会返回任何内容。当然,使用whiled字符。甚至“*.*”
。请检查我在回答中建议的代码。