我正在尝试创建一个宏,该列表将列出网络文件夹中的所有Excel电子表格,但忽略excel在电子表格打开时创建的任何临时文件(即:〜$ filename.xlsx)此代码工作正常,但也选择这些临时文件。
If (objFile) Like ("*.xlsx") Then
Do something here
End If
Next objFile
我尝试过使用If Not语句但是无法使用它。我是VBA的新手,可能是我的语法很简单。有没有办法指定所有.xlsx文件而忽略任何临时的〜$ *。xlsx文件?
答案 0 :(得分:0)
我认为最简单的方法就是在If
语句中添加一个额外的子句:
If objFile Like "*.xlsx" And Left(objFile, 2) <> "~$" Then
Do something here
End If
Next objFile
答案 1 :(得分:0)
只需在~
声明中排除以Like
开头的字符串:
If (objFile) Like ("[!~]*.xlsx") Then
'Do something here
End If
答案 2 :(得分:0)
您可以使用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
我将文件名存储在一个集合中,但显然你可以将它们存储在一个数组或最适合你需要的地方......
此致 TheSilkCode