我正在使用excel vba代码将不同excel文件中的数据导入到一个。
有3个名为supplier-a
,supplier-b
和supplier-c
的文件;我要在zmaster.xlsm
中导入其数据。所有这4个文件都在我桌面上名为untitled folder
的文件夹中。
我编写了以下代码,但它说代码不能用于中断,并在调试时突出显示dir=("...")
行。提到的路径是完全正确的,我已经在mac excel和excel 2007(windows)上尝试了这个代码。有人可以帮帮我吗?
我的代码:
Sub LoopThroughDirectory()
Dim MyFile As String
Dim erow
**MyFile = Dir("\Users\Ananyashree\Desktop\untitled\ folder")**
Do While Len(MyFile) > 0
If MyFile = "zmaster.xlsm" Then
Exit Sub
End If
Workbooks.Open (MyFile)
Range("A2:D2").Copy
ActiveWorkbook.Close
erow = Sheet1.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
ActiveSheet.Paste Destination = Worksheets("Sheet1").Range(Cells(erow, 1), Cells(erow, 4))
MyFile = Dir
Loop
End Sub
答案 0 :(得分:0)
您应该阅读MSDN上Dir
功能的在线帮助:
https://msdn.microsoft.com/en-us/library/office/gg278779%28v=office.15%29.aspx
然后很明显,您的系统不支持使用?
或*
等通配符。它在该网站上声明您应该在Mac上使用以下命令(作为通配符替换搜索):
Dir("SomePath", MacID("TEXT"))
提示:您可以通过突出显示VBE中的单词,然后按F1
获取帮助,轻松查找MSDN上的任何功能。至少这适用于Windows。但在Mac上可能/肯定有相同的东西。
@ssice路径是否正确无关紧要。 Dir
函数就是用来验证某个路径。您甚至可以使用MyFile = Dir("Z:\\/x fh-_")
并且代码应该仍然可以正常运行(因此它在我的系统上运行)。但是,Dir
将在这种情况下返回vbNullString
,表示无法找到路径/文件。但同样,这条线应该没有错误。
但是你肯定向OP推荐一些额外的代码行来验证 if 找到文件/路径并验证路径。通常,我会包含以下其他行:
If MyFile = vbNullString Then
MsgBox "File / path could not be found." & Chr(10) & "Aborting..."
Exit Sub
End If
答案 1 :(得分:0)
使用下面链接中的AddIn。它会做你想做的所有事情。