VBA语法以排除某些文件类型

时间:2017-02-03 23:55:39

标签: excel vba

我正在尝试创建一个宏,该列表将列出网络文件夹中的所有Excel电子表格,但忽略excel在电子表格打开时创建的任何临时文件(即:〜$ filename.xlsx)此代码工作正常,但也选择这些临时文件。

If (objFile) Like ("*.xlsx") Then
            Do something here
        End If
        Next objFile

我尝试过使用If Not语句但是无法使用它。我是VBA的新手,可能是我的语法很简单。有没有办法指定所有.xlsx文件而忽略任何临时的〜$ *。xlsx文件?

3 个答案:

答案 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