在VBA下方找到特定位置中最近修改过的文件,然后将该文件复制到另一个位置:
Dim objFSO As Object
Dim objFolder As Object
Dim objFile As Object
Dim strcopyfile As String
Dim strpaste As String
Dim strName As String
Dim varDate As Variant
strcopyfile = "C:\Flow"
strpaste = "C:\Users\Draft.xlsx"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.getfolder(strcopyfile)
For Each objFile In objFolder.Files
If objFile.DateLastModified > varDate Then
varDate = objFile.DateLastModified
strName = objFile.Name
FileCopy objFile, strpaste
End If
Next 'objFile
有没有办法只复制特定文件的文件?
类似于SQL中LIKE
函数的东西,例如:WHERE City LIKE 's%'
。
答案 0 :(得分:0)
由于您已经拥有strName来保存文件名,因此您可以使用内置的INSTR函数来测试字符串是否包含子字符串。 INSTR采用这些参数:
开始搜索的字符串的位置, 字符串本身, 要搜索的字符串, 如何搜索(vbTextCompare [不区分大小写]和vbBinaryCompare [区分大小写]是这里的两个相关枚举)
INSTR将返回一个数字,表示找到的字符串的位置,如果找不到该字符串,则返回0。例如;
strName = "this is a test file.txt"
?INSTR(1,strName,"test file",vbTextCompare)
将返回11作为'测试文件'出现在第11位。
因此,为了构建代码,我将添加一个if语句来运行复制命令:
If Instr(1,strName,"test file",vbTextCompare) > 0 then
FileCopy objFile, strpaste
end if
希望这有帮助!