使用通配符打开excel工作簿

使用通配符打开excel工作簿,excel,wildcard,vba,Excel,Wildcard,Vba,我想使用通配符打开与宏工作簿存储在同一文件夹中的工作簿。文件夹中有一个名为302113-401yr-r01.xlsm的文件。这是我的密码: Workbooks.Open filename:=ActiveWorkbook.Path & "\302113*.xlsm" 但是,它告诉我没有这样的文件。有什么建议吗?我们不能用通配符打开文件-如果可以的话,想象一下混乱 您需要使用Dir(ActiveWorkbook.Path&“\302113*.xlsm”)循环遍历此返回的文件。如果只有一个,

我想使用通配符打开与宏工作簿存储在同一文件夹中的工作簿。文件夹中有一个名为
302113-401yr-r01.xlsm
的文件。这是我的密码:

Workbooks.Open filename:=ActiveWorkbook.Path & "\302113*.xlsm"

但是,它告诉我没有这样的文件。有什么建议吗?

我们不能用通配符打开文件-如果可以的话,想象一下混乱

您需要使用
Dir(ActiveWorkbook.Path&“\302113*.xlsm”)
循环遍历此返回的文件。如果只有一个,则只需使用此功能一次:

Dim sFound As String

sFound = Dir(ActiveWorkbook.Path & "\302113*.xlsm")    'the first one found
If sFound <> "" Then
    Workbooks.Open filename:= ActiveWorkbook.Path & "\" & sFound
End If
Dim作为字符串查找
sFound=Dir(ActiveWorkbook.Path&“\302113*.xlsm”)'找到的第一个
如果找到“”则
工作簿。打开文件名:=ActiveWorkbook.Path&“\”&s查找
如果结束

:tech on the net

根据我的经验,如果字符串中的最后一个符号是通配符/asterix,并且只有一个文件,则此操作有效。试着做:

Workbooks.Open filename:=ActiveWorkbook.Path & "\302113*"
例如,我正在使用:

Workbooks.Open Filename:="X:\business\2014\Easy*"

它可以工作。

您可以使用通配符打开文件,但出于某种原因,只能使用UNC路径

例如:

Set xlFile = xlObj.WorkBooks.Open("\\yourServerHere\dataAutomation\*.xlsx")

我对Excel还没有太多的经验,但是下面的内容对我来说非常有用,可以在文件名中使用通配符来打开文件。此示例要求所有文件都位于同一目录/文件夹中。是的,这太简单了

Sub using_wildcards_to_open_files_in_excel_vba()

    Dim mypath As String
    Dim sFilename As String

    'Suppose you have three files in a folder
    ' Named blank.xlsx,, ex1_939_account.xlsx,  and ex1_opt 5.xlsx

    'Manually open the blank.xlsx file

    'The following code lines will open the second two files before closing the previously opened file.

    ActiveWorkbook.Activate
    mypath = ActiveWorkbook.Path
    'opening xlsx file with name containing "939" and closing current file
    mypath = mypath & "\*939*.xlsx"
    'MsgBox mypath  'Checking
    sFilename = Dir(mypath)
    'MsgBox sFilename  'Checking

    ActiveWorkbook.Close savechanges:=False
    Workbooks.Open Filename:=sFilename

    ActiveWorkbook.Activate
    mypath = ActiveWorkbook.Path
    'opening xlsx file with name ending in "opt 5" and closing current file
    mypath = mypath & "\*opt 5.xlsx"
    'MsgBox mypath  'Checking
    sFilename = Dir(mypath)
    'MsgBox sFilename  'Checking

    ActiveWorkbook.Close savechanges:=False
    Workbooks.Open Filename:=sFilename

End Sub

不能在路径或文件名中使用星号。您需要分别打开每个文件。在这里搜索'Dir function',当然有很多例子。你也可以找到一些信息。+1
我们无法使用通配符打开文件-如果可以的话,想象一下混乱如此正确:)啊,我知道使用通配符打开文件会有多大问题。谢谢你的回复!只有一条注释,除非我弄错了,否则DIR函数似乎只返回文件名,而不是路径和文件名。所以当我在上面的代码中使用Workbooks.Open时,我不得不使用:ActiveWorkbook.Path&“\”&s感谢您的回帖,我已经将此添加到了答案中,以防其他人发现它有用。我不明白为什么注释
the chaos
似乎所有其他编程语言都支持通配符,这取决于编码者对逻辑进行编码,不是语言。这种方法不适用于我,请取消我的upvote(已锁定)。