Objekt erforderlich
19.06.2017 10:57:14
Catha1996
ich habe folgenden Code, der eine Masterdatei nach Werten in Spalte F splitten soll, sodass mehrere kleine Excel-Dateien entstehen:
Sub LB_splitten()
Dim v As Object
Dim D As Object
Dim i As Long
Dim vFileToOpen As Variant
Dim Tool As Workbook
Dim GesÜbersicht As Worksheet
Dim ActBook As Workbook
Dim CurrentFile As String
Dim NewFileType As String
Dim NewFile As String
Application.ScreenUpdating = False
vFileToOpen = Application.GetOpenFilename("Excel Files (*.xls*), *.xls*", , , , True)
If Not IsArray(vFileToOpen) Then Exit Sub
Set Tool = ActiveWorkbook
Set GesÜbersicht = ActiveWorkbook.Worksheets.Item(1)
CurrentFile = ActiveWorkbook.FullName
NewFileType = "Excel Files 1997-2016 (*.xls), *.xls," & _
"Excel Files 2007 (*.xlsx), *.xlsx," & _
"All files (*.*), *.*"
Set D = CreateObject("scripting.dictionary")
With GesÜbersicht
With .Range(Cells(1, 1), Cells(Rows.Count, 17)).CurrentRegion
For Each v In .Columns(6).Offset(1).Value
If v "" Then D(v) = 0
Next
For Each v In D.Keys
For i = Cells(Rows.Count, 6).End(xlUp).Row To 1 Step -1
If Cells(i, 6) v Then Rows(i).Delete
Next i
NewFile = Application.GetSaveAsFilename( _
InitialFileName:=v, _
fileFilter:=NewFileType)
ActiveWorkbook.SaveAs Filename:=NewFile, _
FileFormat:=xlNormal, _
Password:="", _
WriteResPassword:="", _
ReadOnlyRecommended:=False, _
CreateBackup:=False
Set ActBook = ActiveWorkbook
Workbooks.Open CurrentFile
ActBook.Close
Next v
End With
End With
End Sub
In der Zeile
For Each v In .Columns(6).Offset(1).Value
wird mir allerdings angezeigt "Laufzeitfehler '424': Objekt erforderlich" und der Debugger zeigt an, dass v = 0 ist. Komischerweise habe ich diesen kompletten Absatz und auch die Deklarierung aus einem anderen Code übernommen, der ohne Probleme durchläuft.
Weiß jemand Rat?
Liebe Grüße
Catha