如何通过Excel宏使用通配符选项打开.PDF文件

时间:2018-11-15 03:50:15

标签: excel vba excel-vba pdf

由于我是excel宏的新手,所以我尝试开发一个能够打开PDF文件的代码。但是我的系统中有一些PDF文件是由另一个系统生成的,因此这些文件的名称每天都会更改天,也包括一些数字。

例如,“过程报告151120183569844”是这样的。这些数字每天都在变化。我尝试了添加WILDCARD选项,但它不起作用。如何仅使用部分文件名打开此PDF?< / p>

     Sub Open_PDF()
    Dim pdfPath As String
    pdfPath ="D:\Reports\Process Report*" & ".pdf" 'I used wildcard instead "Process Report 151120183569844"'
Call OpenAnyFile(pdfPath)
End Sub

Function openAnyFile(strPath As String)
Set objShell = CreateObject("Shell.Application")
objShell.Open(strPath)
End Function

2 个答案:

答案 0 :(得分:2)

正如another answer中指出的那样,带有通配符的Dir函数应该可以解决问题。

下面是使用原始<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" rel="stylesheet"/> <div class="container-fluid"> <div class="row"> <div class="col-md-2 leftsidebar">left</div> <div class="col-md-8"> <div class="row"> <div class="col-md-12 header">header</div> </div> <div class="row"> <div class="col-md-12 content">content</div> </div> <div class="row"> <div class="col-md-12 footer">footer</div> </div> </div> <div class="col-md-2 rightsidebar">right</div> </div> </div>函数的示例。

openAnyFile

答案 1 :(得分:1)

您不能使用通配符打开文件-这只是常识,如果多个文件符合您的条件怎么办-您要编程打开哪个文件?您必须指定确切的文件名才能打开它。

如果目标目录中只有一个文件,则无论文件名如何,都可以使用以下代码将其打开:

sFound = Dir(ActiveWorkbook.Path & "\Process Report*.xlsm") 

If sFound <> "" Then
    Workbooks.Open filename:= ActiveWorkbook.Path & "\" & sFound
End If