Ich versuche, eine Tabelle basierend auf einer Zelle in einer anderen Arbeitsmappe zu filtern. Der Verweis für den Filter befindet sich in der Arbeitsmappe „ReportWB“ und im Blatt „Project Summary Detail“, Zelle „I1“ (die meines Erachtens durch die Zeichenfolge „Region“ abgedeckt ist? Der Benutzer gibt die Nummer in „Region“ ein und dann sollte die Tabelle in der Arbeitsmappe „DetailData“ gefiltert und anschließend dieser gefilterte Bereich kopiert werden. Momentan erhalte ich einen Fehler beim Autofilter-Teil, da die Kriterien meines Erachtens nicht korrekt angegeben wurden. Der Fehler ist Laufzeitfehler „1004“: AutoFilter-Methode der Range-Klasse ist in dieser Codezeile fehlgeschlagenWith DetailData Sheets("Project Detail").Range("A1").AutoFilter field = 2, Criteria1:=ReportWB.Sheets("Project Summary Data").Range("I1") DetailData.Sheets("Project Detail").Range("A1").CurrentRegion.Copy
Dim region As String
Dim Report As Worksheet
Dim Data As Worksheet
Dim count_col As Integer
Dim count_row As Integer
Dim tbl As ListObject
Dim DetailData As Workbook
Dim ReportWB As Workbook
Set Report = ThisWorkbook.Sheets("Project Cost Report Summary")
Set Data = ThisWorkbook.Sheets("Project Summary Data")
region = Data.Range("I1").Text
Set tbl = Report.ListObjects("Table2")
'Clean up Summary Sheet
Rows("9:3000").Select
Range("A3000").Activate
Selection.Delete Shift:=xlUp
Range("B7").Select
Selection.AutoFill Destination:=Range("Table2[Level]"), Type:=xlFillDefault
Range("Table2[Level]").Select
Columns("A:C").Select
Selection.EntireColumn.Hidden = True
'Clear Contents of Project cost Report Detail Tab
Sheets("Project Detail").Select
Cells.Select
Selection.ClearContents
'Clear Contents of Project cost Report Summary Tab
Sheets("Project Cost Report Summary").Select
Range("Table2[[Task Code]:[Budget $''s]]").Select
Selection.ClearContents
'## Open workbooks first:
Set DetailData = Workbooks.Open("C:\Users\sbossert\Documents\Macro Project Detail - All Data.xlsx")
Set ReportWB = Workbooks.Open("C:\Users\sbossert\Documents\Mid-Level Project Report - Template Filter data.xlsm")
'Now, copy what you want from Detail:
With DetailData
Sheets("Project Detail").Range("A1").AutoFilter field = 2, Criteria1:=ReportWB.Sheets("Project Summary Data").Range("I1")
DetailData.Sheets("Project Detail").Range("A1").CurrentRegion.Copy
'Now, paste to project detail worksheet:
ReportWB.Sheets("Project Detail").Range("A1").PasteSpecial
'Close x:
DetailData.Close
'determine the size of the range
Data.Activate
count_col = WorksheetFunction.CountA(Range("A1", Range("A1").End(xlToRight)))
count_row = WorksheetFunction.CountA(Range("A1", Range("A1").End(xlDown)))
'filter data on Raw Data tab
Data.Range("A1").AutoFilter field:=1, Criteria1:=region
'Copy and Paste to Cost Report
Data.Range(Cells(2, 2), Cells(count_row, count_col)).SpecialCells(xlCellTypeVisible).Copy
tbl.DataBodyRange(1, 4).PasteSpecial
Application.CutCopyMode = False
'Show Data and Remove the Filter
With Data
.ShowAllData
.AutoFilterMode = False
'Project Detail have only project values
'Refresh All Data
End With
ReportWB.RefreshAll
End With
End Sub```