Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将文件名从VBA中的目录写入单元格_Vba_Excel_Directory_Filenames - Fatal编程技术网

将文件名从VBA中的目录写入单元格

将文件名从VBA中的目录写入单元格,vba,excel,directory,filenames,Vba,Excel,Directory,Filenames,我在下面附加了一个宏,它在Dir中循环文件,并将数据复制到主文件(宏从主文件运行)。我要做的是在主文件中写入,数据复制的文件名位于粘贴到的列的顶部(单元格E5) 你能告诉我 子导入_数据() ”目的:循环浏览用户指定文件夹中的所有Excel文件,并对其执行设置任务 将WB设置为工作簿 将此设置为工作簿 将myPath设置为字符串 将myFile设置为字符串 Dim myExtension作为字符串 Dim FldrPicker As FILE对话框 设置wbThis=ActiveWorkbook

我在下面附加了一个宏,它在Dir中循环文件,并将数据复制到主文件(宏从主文件运行)。我要做的是在主文件中写入,数据复制的文件名位于粘贴到的列的顶部(单元格E5)

你能告诉我

子导入_数据()

”目的:循环浏览用户指定文件夹中的所有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“记住输入列标题!”
端接头

您想要的文件名似乎存储在“myFile”中。 为确保安全,请在此行中添加打印内容

myFile = Dir(myPath & myExtension)
Debug.Print myfile
并检查输出是否为所需的字符串

尝试改变

Sheets("Faro Scan Data").Select
Range("E5").Select
PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

我不确定这条线应该做什么:

myPath = myPath

您想要的文件名似乎存储在的“myFile”中。 为确保安全,请在此行中添加打印内容

myFile = Dir(myPath & myExtension)
Debug.Print myfile
并检查输出是否为所需的字符串

尝试改变

Sheets("Faro Scan Data").Select
Range("E5").Select
PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

我不确定这条线应该做什么:

myPath = myPath

如果您为您的问题创建了一个最小的、完整的和可验证的示例(请参阅),这会有所帮助。另外,您自己尝试过什么吗?(提示:查看
Dir()
函数的帮助)如果您为您的问题创建了一个最小的、完整的、可验证的示例(请参阅),那么它会有所帮助。另外,您自己尝试过什么吗?(提示:查看
Dir()
函数的帮助)