我有一个宏,每天用来将自动生成的文件附加到电子邮件中。
文件名需要采用某种格式,其中包括日期和时间,并且由于这是自动的,因此只能固有地知道日期(无需手动检查文件)。
- 我在用
.Attachments.Add
and format(date... etc.)
获取文件名的第二部分。
- 第一部分是一个数字和一个不会改变的单词
- 但第三部分(显示为“
*.csv
” 下面)是导致问题的部分。
我尝试过替代*
就像我在论坛上看到的那样,但它在该示例中似乎有效,但它对我不起作用。我错过了什么吗?
.Attachments.Add ("G:\AML, CFT & Sanctions\Sanctions\KYC6 Person & Organsation Reports\" & Format(Date, "yyyy") & "\" & Format(Date, "mmmm") & "\65436546_Test_" & Format(Date, "yyyymmdd") & "*.csv")
正如 @Kostas 所建议的,您可以通过 glob 查找文件Dir功能 https://msdn.microsoft.com/en-us/vba/language-reference-vba/articles/dir-function。请注意,它仅返回文件名,不返回路径。
当没有或多个文件与该模式匹配时,请务必处理这种情况。 (我的代码在这些情况下会产生错误;错误代码取自http://www.halfile.com/vb.html http://www.halfile.com/vb.html .)
Dim date_ As Date, pattern, dir_, filename As String: date_ = Date
dir_ = "C:\Users\Ivan\Documents\test & test\" & _
Format(date_, "yyyy\\mmmm\\")
pattern = "65436546_Test_" & Format(date_,"yyyymmdd") & "*.csv"
filename = Dir(dir_ & pattern)
If Len(filename) = 0 Then Error 53 'File not found
If Len(Dir()) <> 0 Then Error 58 'More than one matching file
<email>.Attachments.Add(dir_ & filename)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)