繁体   English   中英

您可以在VBA Dir函数中使用多个通配符吗?

[英]Can you use multiple wildcards in the VBA Dir function?

我正在使用宏来输出文件名。 我有一个目录,其中包含工业批处理过程的日志文件。 每个批次分配一个5位数字的批次号,每个批次都有一个.csv和.txt文件。 这两个文件的文件名相同,并且包含批号,例如:

XYZ 53482 20180827.csv
XYZ 53482 20180827.txt
XYZ 53483 20180828.csv
XYZ 53483 20180828.txt
XYZ 53484 20180829.csv
XYZ 53484 20180829.txt

到目前为止,我的宏是:

Sub FindBatchFile()
Dim Batch As Double
Dim DirPath As String, r As Integer

Batch = InputBox("Enter Batch Number")

DirPath = Dir("C:\Data\* " & Batch & "*", vbDirectory)
r = 1
Workbooks.Add
MsgBox (DirPath)

Do Until DirPath = ""
Cells(r, 1).Value = DirPath
MsgBox (DirPath)
r = r + 1
DirPath = Dir
Loop

End Sub

这可以正常工作,但是输出同时包含.csv和.txt文件。 有没有办法在Dir函数中使用多个通配符(即,包括“ *.csv ”条件以及“ *Batch* ”标准)?

提前谢谢了!

我相信,只要在您的DirPath中添加了.csv ,以下内容就会按您期望的那样工作:

Sub FindBatchFile()
Dim Batch As Double
Dim DirPath As String, r As Integer

Batch = InputBox("Enter Batch Number")

DirPath = Dir("C:\Data\* " & Batch & "*.csv", vbDirectory)
r = 1
Workbooks.Add
MsgBox (DirPath)

Do Until DirPath = ""
    Cells(r, 1).Value = DirPath
    MsgBox (DirPath)
    r = r + 1
    DirPath = Dir
Loop

End Sub

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM