使用通配符打开Excel工作簿

时间:2013-10-22 20:13:10

标签: excel excel-vba wildcard vba

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

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

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

4 个答案:

答案 0 :(得分:13)

我们无法使用通配符打开文件 - 想象一下如果我们可以混乱!

您需要使用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

Dir Function:网上技术

答案 1 :(得分:3)

根据我的经验,如果您将通配符/ asterix作为字符串中的最后一个符号并且只有一个文件,则此方法可行。尝试做:

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

例如我正在使用:

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

它有效。

答案 2 :(得分:2)

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

例如:

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

答案 3 :(得分:2)

我不熟悉Excel,但以下对我来说在文件名中使用通配符打开文件效果很好。此示例要求所有文件位于同一目录/文件夹中。是的,这很简单。

<?php
    if (!empty($linkwebsite)){
    echo 'not empty';
}
else{
    echo 'is not set or empty';
}
?>