VBA Sort DIR以字母顺序传输数据

VBA Sort DIR以字母顺序传输数据,vba,excel,sorting,Vba,Excel,Sorting,我在下面编写了一个宏,用于将用户选择的文件夹中所有工作簿中的数据复制并粘贴到主控文档中,但当前宏以随机顺序选择文件。我想做的是让它按字母顺序选择文件,这样主控文档中的数据顺序正确。。。帮助实现这一点将不胜感激,我不珍惜的方法 子导入_数据() '用途:循环浏览用户指定文件夹中的所有Excel文件并对其执行设置任务 将WB设置为工作簿 将此设置为工作簿 将myPath设置为字符串 将myFile设置为字符串 Dim myExtension作为字符串 Dim FldrPicker As FILE对话

我在下面编写了一个宏,用于将用户选择的文件夹中所有工作簿中的数据复制并粘贴到主控文档中,但当前宏以随机顺序选择文件。我想做的是让它按字母顺序选择文件,这样主控文档中的数据顺序正确。。。帮助实现这一点将不胜感激,我不珍惜的方法

子导入_数据()
'用途:循环浏览用户指定文件夹中的所有Excel文件并对其执行设置任务
将WB设置为工作簿
将此设置为工作簿
将myPath设置为字符串
将myFile设置为字符串
Dim myExtension作为字符串
Dim FldrPicker As FILE对话框
设置wbThis=ActiveWorkbook
'优化宏速度
Application.ScreenUpdating=False
Application.EnableEvents=False
Application.Calculation=xlCalculationManual
'从用户检索目标文件夹路径
MsgBox“请选择Faro扫描数据文件夹”
Set FldrPicker=Application.FileDialog(msoFileDialogFolderPicker)
用FldrPicker
.Title=“选择目标文件夹”
.AllowMultiSelect=False
如果.Show-1,则转到下一个代码
myPath=.SelectedItems(1)和“\”
以
"如果取消,
下一个代码:
myPath=myPath
如果myPath=”“,则转到重置设置
'目标文件扩展名(必须包含通配符“*”)
myExtension=“*.xls”
'具有结束扩展名的目标路径
myFile=Dir(myPath&myExtension)
'循环浏览文件夹中的每个Excel文件
当我的文件“”时执行此操作
'将变量设置为等于打开的工作簿
设置WB=Workbooks.Open(文件名:=myPath&myFile)
'在继续下一行代码之前,确保工作簿已打开
多芬特
'从目标工作簿复制数据。。。。
WB.激活
Application.CutCopyMode=False
范围(“D8:D377”)。副本
这个,激活
工作表(“Faro扫描数据”)。选择
范围(“E5”)。选择
Selection.Paste特殊粘贴:=xlPasteValues,操作:=xlNone,SkipBlank_
:=假,转置:=假
Application.CutCopyMode=False
'为下一个数据集插入列
列(“E:E”)。选择
选择。插入移位:=xlToRight
'新数据集的格式列
列(“I:I”)。选择
选择,复制
列(“E:E”)。选择
Selection.Paste特殊粘贴:=xlPasteFormats,操作:=xlNone_
SkipBlanks:=False,转置:=False
Application.CutCopyMode=False
'关闭工作簿
WB.Close SaveChanges:=False
'在继续下一行代码之前,确保工作簿已关闭
多芬特
'获取下一个文件名
myFile=Dir
环
'任务完成时的消息框
MsgBox“任务完成!”
重置设置:
'重置宏优化设置
Application.EnableEvents=True
Application.Calculation=xlCalculationAutomatic
Application.ScreenUpdating=True
MsgBox“记住输入列标题!”
端接头

查看下面的示例,该示例显示如何使用过滤器循环浏览文件夹中的文件,并使用
Shell按字母顺序排序。应用程序
ActiveX:

选项显式
子测试\u外壳\u文件夹\u项目()
昏花
暗性张力
迪姆·奥舍拉普
阴暗面
旧件的尺寸
文件夹项目的尺寸
sPath=“C:\Test”
sExtension=“*.xls”
设置oShellApp=CreateObject(“Shell.Application”)
文件夹集=oShellApp.Namespace(sPath)
文件夹项集=文件夹项集()
文件夹项。筛选器64+128,sExtension'32-文件夹,64-非文件夹,128-隐藏
对于oFolderItems中的每个oFolderItem
调试。打印文件夹项。路径
下一个
端接头

看看这个:嗨,omegastripes,这正是我要找的。然而,我不知道我应该在哪里应用它(相对于我最初的尝试,我应该更改哪些参考资料等),你能给我一些建议吗?不要使用
GoTo
Select
。嗨,omegastripes,这看起来就是我要找的。然而,我不知道我应该在哪里应用它(相对于我最初的尝试,我应该更改哪些引用等),你能给我一些建议吗?@d_nails_93你需要为每个应用实现
。。。下一步
循环,如示例所示。修改示例代码。复制行
myExtension=“*.xls”
之前的代码,并粘贴到行
sExtension=“*.xls”
之前的示例,删除
sPath=“C:\Test”
并更改为
sPath=。选择EdItems(1)
。复制
Do中的行。。。循环
并将示例粘贴到每个。。。接下来循环,将行
Set WB=Workbooks.Open(文件名:=myPath&myFile)
替换为
Set WB=Workbooks.Open(文件名:=oFolderItem.Path)
。使用一个名称,而不是
sPath
myPath