簡體   English   中英

循環以取消過濾多個Excel工作簿VBA

[英]Loop to unfilter multiple excel workbooks VBA

我試圖做一個循環,以取消篩選所有工作簿的列A(因為它們相同,alwyas列A)。 我想顯示所有單元格,因為過濾器會將空單元格淹沒。 我有很多文件夾(超過50個),因此循環對於我的代碼的下一步非常有用且非常重要。

我有一個適用於一個文件夾的代碼:

`Sub unfilterr()
Dim y As Workbook, myfile, FolderPath, path
Dim ws As Excel.Worksheet
Set y = Workbooks.Open("Z:\VBA\Copie de Devis_65 Version 
avec G35.xlsx")
With y.Worksheets("Para RF")
    If Not y.Worksheets("Para RF").AutoFilter Is Nothing Then
            y.Sheets("Para RF").Range("A1").AutoFilter Field:=1
    End If
End With
End Sub`

現在嘗試執行循環:

`Sub unfilter1()
Dim y As Workbook, myfile, FolderPath, path
Dim ws As Excel.Worksheet

'## Open workbooks first:
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.Calculation = xlCalculationManual



FolderPath = "Z:\VBA\Test\"
path = FolderPath & "*.xls*"
myfile = Dir(FolderPath & "*.xls*")

Do While myfile <> ""

Set y = Workbooks.Open(path) 'I put path instead of myfile because I have error if I put myfile

Set ws = y.Worksheets("Para RF")
'With ws
    If Not ws.AutoFilter Is Nothing Then
            y.Sheets("Para RF").Range("A1").AutoFilter Field:=1
    End If
'End With

myfile = Dir()
y.Close saveChanges:=True
Loop


MsgBox ("Task Complete")
End Sub

你能告訴我這個循環有什么問題嗎? 我正在測試文件夾中的4個工作簿上嘗試它! 只有第一個未過濾,而其他沒有。 似乎循環僅在文件夾中的第一個工作簿上重復出現。

因此,在此循環中沒有錯誤消息,但結果令人不滿意。

非常感謝您的幫助。

干杯!

Workbook.Open()方法需要完整路徑和文件名。

更換

 Set y = Workbooks.Open(path)

Set y = Workbooks.Open(FolderPath & myfile)

而且你應該很好走。 您不需要path變量。

編輯:我將您的整個腳本最小化到最低限度,以遍歷所有“ .xls ”文件並在文件夾中打開所有這些文件:

Sub OpenWorkbooks()
Dim y As Workbook
Dim myfile As String
Dim FolderPath As String

FolderPath = "C:\TestDirectory\"
myfile = Dir(FolderPath & "*.xls*")

Do While myfile <> ""
    Set y = Workbooks.Open(FolderPath & myfile) 
    myfile = Dir()
Loop
End Sub

上面的代碼在我的計算機上的C:\\TestDirectory\\打開每個Excel文件。 注意,請確保FolderPath變量的末尾帶有“ \\”,否則它將查找C:\\TestDirectorySomeFileName.xlsx ,它將無法正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM