Ich habe grundlegende Daten mit mehreren Excel, die ich die Daten basierend auf den Spalten aussortieren muss, während die sortierten Daten, die eine eindeutige Werte und diese uniques Werte in Array, basierend auf eindeutigen Werten muss eine neue Arbeitsmappe erstellt werden.Fehler `saveas Methode Arbeitsmappe gescheitert` in VBA Excel
Mein Problem:
- Wenn im das Makro Executing manchmal sein, den Fehler
saveas method workbook class failed
- zeigt, wie ich eine Spalte einfrieren?
Mein Code:
sub marcel()
Dim sArray as string
Dim saArray as string
Dim Lastrow_Sub As Integer
Dim Lastrow_Aging As Integer
Dim Array_Sub As Variant
Dim Array_Sub_Aging As Variant
Dim rngFilter_Ws2 as range
Dim Sht6 as worksheet
Dim ColumnsToRemove2 as variant
Dim j2 as integer
Dim vItem2 as variant
Check_date = Format(Date, "yymm")
Sheets("q_Aging_base_data_incl_FDB").Columns("D:D").AdvancedFilter Action:=xlFilterCopy, _
CopyToRange:=.Range("AY1"), Unique:=True
Lastrow_Aging = .Cells(.Rows.Count, "AY").End(xlUp).Row
Array_Sub_Aging = Range("AY2:AY" & Lastrow_Aging)
saArray = Array_Sub_Aging(m, 1)
Sheets("BASE qry_Inventory Activation b").Columns("H:H").AdvancedFilter Action:=xlFilterCopy, _
CopyToRange:=.Range("AZ1"), Unique:=True
Lastrow_Sub = .Cells(.Rows.Count, "AZ").End(xlUp).Row
Array_Sub = Range("AZ2:AZ" & Lastrow_Sub)
sArray = Array_Sub(k, 1)
If sArray <> "APE" And saArray = "APE" Or sArray <> "XXUMA" And saArray = "XXUMA" Then
Dim NewBook_Sub_Aging As Workbook
Set NewBook_Sub_Aging = Workbooks.Add
With NewBook_Sub_Aging
.Title = saArray
NewBook_Sub_Aging.Worksheets("sheet1").Name = "Aging Inventory"
With rngFilter_Ws2
.AutoFilter Field:=4, Criteria1:=saArray, Operator:=xlFilterValues
.AutoFilter Field:=15, Criteria1:="reporting relevant Location", Operator:=xlFilterValues
.AutoFilter Field:=32, Criteria1:="<>(a) 0 - 360", Operator:=xlFilterValues
Set rngCopyAging_Sub = .SpecialCells(xlCellTypeVisible)
.AutoFilter ' Switch off AutoFilter
End With
rngCopyAging_Sub.Copy Destination:=NewBook_Sub_Aging.Worksheets("Aging Inventory").Cells(1, 1)
' Delete unwanted columns for subregions(APE and XXUMA) Aging
Set Sht6 = NewBook_Sub_Aging.Worksheets("Aging Inventory")
ColumnsToRemove2 = Array("Period", "AP_BU", "Subregion", "Strategic_BU", "Company_Code", "Company_name", "Plant_name", _
"Rep Location", "Storage_Location", "Storage_Location_name", "Date_last_goods_rec", "Stock_type", _
"Stock_type_name", "Kind_of_Material_name", "Supplier_name", "SummevonVEU_OIV1", "Days_since_production", _
"Remaining_shelf_life", "APO_Planner", "S_SCM_or_SVC")
For j2 = LBound(ColumnsToRemove2) To UBound(ColumnsToRemove2) Step 1
vItem6 = Application.Match(ColumnsToRemove2(j2), Sht6.Rows(1), 0)
Debug.Print vItem6
If IsNumeric(vItem6) Then
Sht6.Columns(vItem6).Delete
End If
Next j2
NewBook_Sub_Aging.Worksheets("Aging Inventory").Cells.EntireColumn.AutoFit
NewBook_Sub_Aging.Worksheets("Aging Inventory").Range("A1:P1").AutoFilter
NewBook_Sub_Aging.Worksheets("Aging Inventory").Range("A2:P2").Select
ActiveWindow.FreezePanes = True
.SaveAs Filename:="KPI" & " " & saArray & " " & Check_date & ".xlsx"
Application.DisplayAlerts = False
NewBook_Sub_Aging.Close
End With
End If
end sub
kann jemand bitte helfen Sie mir, wie Sie dieses Problem zu beheben.
Sollen 'sArray'- und' saArray'-Variablen vorhanden sein? Ist diese Zeile korrekt: 'sArray <>" APE "Und saArray =" APE "Oder sArray <>" XXUMA "Und saArray =" XXUMA "' oder sollte es sein '(sArray <>" APE "Und saArray =" APE ") Oder (sArray <> "XXUMA" Und saArray = "XXUMA)" '? Wie hoch ist der Wert in 'saArray' und' Check_date'? Ist 'saArray' ein Array von Werten, die Sie im Dateinamen verwenden? –
Ich nehme an, dass der Name 'check_date' ein Datum ist und Schrägstriche enthalten kann. Dateinamen können die folgenden Zeichen nicht enthalten: \ /: *? "< > | – LiamH
@ DarrenBartrup-Cook sArray und saArray enthält String-Variablen.EX APE, APED, APEA usw.' sArray <> "APE" Und saArray = "APE" Oder sArray <> "XXUMA" Und saArray = "XXUMA" '' ist die korrekte Zeile. 'Check_date' enthält den aktuellen Monat. saArray ist nicht der Wert, es ist eine Zeichenkette. Der Dateiname muss wie folgt erstellt werden: 'KPI APE 1604.xlsx' –