Excel 使用部分名称从路径打开文件

Excel 使用部分名称从路径打开文件,excel,vba,Excel,Vba,我找到了从路径(指单元格)打开文件的代码,以及在完整文件名未知时如何打开文件,但是,我无法同时执行这两项操作。这可能吗 从以下路径打开文件: Dim google_ads_report As Workbook Dim FromPath As String ' Get path from cell C14 on Report tab FromPath = Workbooks("Monthly Report - Master.xlsm").Sheets("Mac

我找到了从路径(指单元格)打开文件的代码,以及在完整文件名未知时如何打开文件,但是,我无法同时执行这两项操作。这可能吗

从以下路径打开文件:


Dim google_ads_report As Workbook
Dim FromPath As String

'   Get path from cell C14 on Report tab
FromPath = Workbooks("Monthly Report - Master.xlsm").Sheets("Macros").Range("C14")

'   Make sure there is a backslash at the end of the from path
If Right(FromPath, 1) <> "\" Then FromPath = FromPath & "\"


'Set wkb = ThisWorkbook
Set google_ads_report = Workbooks.Open(FromPath & "hi.xlsx")

奇怪的是,部分文件打开代码两次都需要目录,在遇到这个问题并思考之后,这很奇怪,不是吗

我假设有办法做到这一点,但我似乎做不到/找不到


谢谢

我唯一能想到的就是在指定的文件夹中循环,并检查文件名是否包含所需的月份文本。请参阅下面的代码(未测试,但应为您指明正确的方向)

选项显式
子打开_文件()
Dim fs作为对象,sf作为对象,文件作为变量
将sFileName设置为字符串
设置fs=CreateObject(“Scripting.FileSystemObject”)
设置sf=fs.GetFolder(“C:\Users\tom\Desktop\”)
sFileName=“分析谷歌广告收入-每月”
对于sf.Files中的每个文件
如果InStr(file.Name,sFileName)>0,则
'找到文件-现在执行open方法
退出
如果结束
下一个文件
端接头

每月的变化是什么?
VBA.FileSystem.Dir
只返回文件名,而不是路径,因此您需要目录。您好@Dean,日期应该很容易添加,但是其他平台在报告名后附加了随机数,因此需要此修复。BigBen啊,在这种情况下是有道理的。但是,你的代码发生了什么?它是否返回错误?如果不是,它是否返回错误的文件名?如果是,这种使用通配符的方法将返回找到的第一个匹配项,如果有很多匹配项可用…@FaneDuru我根据我试图格式化代码的方式遇到了不同的错误,主要是说“对不起,我们找不到…”谢谢@dean,非常感谢Hey@Tom,没问题。如果成功,请将此标记为关闭票据的答案。干杯
GA_Transactions = VBA.FileSystem.Dir("C:\Users\tom\Desktop\Analytics Google Ads Revenue - Monthly*.xlsx")

Workbooks.Open "C:\Users\tom\Desktop\" & GA_Transactions