Excel 排除某些文件类型的VBA语法
我正在尝试创建一个宏,该宏将列出网络文件夹中的所有excel电子表格,但忽略excel在电子表格打开时创建的任何临时文件(即:~$filename.xlsx)。下面的代码非常有效,但也会拾取这些临时文件Excel 排除某些文件类型的VBA语法,excel,vba,Excel,Vba,我正在尝试创建一个宏,该宏将列出网络文件夹中的所有excel电子表格,但忽略excel在电子表格打开时创建的任何临时文件(即:~$filename.xlsx)。下面的代码非常有效,但也会拾取这些临时文件 If (objFile) Like ("*.xlsx") Then Do something here End If Next objFile 我尝试过使用If-Not语句,但在使其工作时遇到了困难。我是VBA新手,可能是我的语法根本不正
If (objFile) Like ("*.xlsx") Then
Do something here
End If
Next objFile
我尝试过使用If-Not语句,但在使其工作时遇到了困难。我是VBA新手,可能是我的语法根本不正确。有没有一种方法可以指定所有.xlsx文件,同时忽略任何临时的~$*.xlsx文件?我认为最简单的方法就是在
If
语句中添加一个额外的子句:
If objFile Like "*.xlsx" And Left(objFile, 2) <> "~$" Then
Do something here
End If
Next objFile
If (objFile) Like ("[!~]*.xlsx") Then
'Do something here
End If
如果objFile像“*.xlsx”并向左(objFile,2)“~$”那么
在这里做点什么
如果结束
下一个objFile
只需在语句中排除以~
开头的字符串,如
语句:
If objFile Like "*.xlsx" And Left(objFile, 2) <> "~$" Then
Do something here
End If
Next objFile
If (objFile) Like ("[!~]*.xlsx") Then
'Do something here
End If
您可以使用Dir执行此操作-请参阅下面的代码:
Public Sub sampleCode()
Dim sourceFolderPath As String
Dim dirStr As String
Dim fileList As Collection
Set fileList = New Collection
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "Select the folder that contains the pictures."
.Show
sourceFolderPath = .SelectedItems(1) & "\"
End With
dirStr = Dir(sourceFolderPath & "*.xlsx")
Do Until dirStr = ""
fileList.Add (dirStr)
dirStr = Dir
Loop
End Sub
我将文件名存储在一个集合中,但显然,您可以将它们存储在数组中或任何最适合您需要的东西中
问候,,
silkcodeUPDATE:有些问题是由于excel没有看到临时文件前面的“~”造成的。我可以通过排除以*$开头的文件来创建一个“过滤器”,现在它可以正常工作了。谢谢大家的回答!