Vba 仅使用部分已知的名称标识文件
我有一个保存文件的宏,命名模式是Myfile_ddmmyyy_hhmmss.rep(ddmmyyy_hhmmss代表当前日期和时间:) 我努力实现的是编写一个宏,用名称中的最新日期和时间标识文件。我得到的是:Vba 仅使用部分已知的名称标识文件,vba,excel,Vba,Excel,我有一个保存文件的宏,命名模式是Myfile_ddmmyyy_hhmmss.rep(ddmmyyy_hhmmss代表当前日期和时间:) 我努力实现的是编写一个宏,用名称中的最新日期和时间标识文件。我得到的是: Sub App_FileSearch_Example() Const SOME_PATH As String = "t:\" Dim file As String Do file = Dir$(SOME_PATH & "MyFile_ddmmyyyy_hhmmss" &
Sub App_FileSearch_Example()
Const SOME_PATH As String = "t:\"
Dim file As String
Do
file = Dir$(SOME_PATH & "MyFile_ddmmyyyy_hhmmss" & ".rep")
If (Len(file) > 0) Then
MsgBox "found " & file
End If
Loop Until file = Dir$()
End Sub
问题是它会无限地找到同一个文件…提前感谢,
艺术。尝试对代码进行此修改。它可以编译,但我没有使用.rep文件文件夹对其进行测试
Sub App_FileSearch_Example()
Dim fn As String, tmp As String, theNewest As String, dtFn As Date
Const SOME_PATH As String = "t:\"
theNewest = "nothing found"
fn = Dir$(SOME_PATH & "MyFile_*.rep")
Do While CBool(Len(fn))
tmp = Left(fn, InStr(1, fn, Chr(46)) - 1) 'truncate at the period
tmp = Mid(tmp, InStr(1, tmp, Chr(95)) + 1, 99) 'split off at the first _
tmp = Replace(tmp, Chr(95), Chr(32)) 'replace the _ in the datetime
If DateValue(tmp) > dtFn Then
dtFn = DateValue(tmp)
theNewest = fn
End If
fn = Dir$()
Loop
MsgBox "found " & theNewest
End Sub
查找具有最新保存日期和时间的文件是否有效?无需重新发明控制盘,即可提供一种使用文件系统日期时间的方法,您可以将其替换为ddmmyyy_hhmmss转换为日期时间/数据类型,并在扫描的每个文件上检查更新的文件。。。