无法使用宏从不同的Excel文件导入数据

时间:2016-06-12 18:35:46

标签: excel vba excel-vba

我正在使用excel vba代码将不同excel文件中的数据导入到一个。

有3个名为supplier-asupplier-bsupplier-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

2 个答案:

答案 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。它会做你想做的所有事情。

http://www.rondebruin.nl/win/addins/rdbmerge.htm