由于我是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
答案 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