ich habe den unten angegebenen Code gefunden, mit dem ich eine Tabelle in einzelne Dateien splitte. Das Skript greift bisher immer auf die Spalte A zu, wenn es einen Namen für die neue Datei anlegen will. Ich würde aber gerne eine andere Spalte für die Generierung des Namens verwendet wird (zum Beispiel Spalte B).
Ursprünglicher Code:
Sub Splitten_nach_ref_start()
Dim MyDic As Object, rng As Range, Zelle As Range, ws As Worksheet, wb As Workbook
Application.ScreenUpdating = False
Set MyDic = CreateObject("Scripting.Dictionary")
Set ws = ActiveSheet
With ws
Set rng = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp))
For Each Zelle In rng.Offset(1, 0)
If MyDic(Zelle.Value) = "" And Not IsEmpty(Zelle) Then
MyDic(Zelle.Value) = 1
rng.AutoFilter field:=1, Criteria1:=Zelle
Set wb = Workbooks.Add
.UsedRange.SpecialCells(xlCellTypeVisible).Copy wb.Sheets(1).Cells(1, 1)
wb.SaveAs Filename:=ThisWorkbook.Path & "\ref\" & Zelle & ".xlsx", FileFormat:= _
51
wb.Close False
rng.AutoFilter
End If
Next
End With
Application.ScreenUpdating = True
End Sub
Verändere ich den Code wie folgt:Set rng = .Range(.Cells(1, 2), .Cells(.Rows.Count, 2).End(xlUp))
Es wird zwar die Spalte B für die Generierung des Namens verwendet, aber es werden keine Werte mehr aus der Tabelle in die neue Datei eingefügt.
Hat jemand eine Idee, wo ich noch einen Fehler im Code habe?
Vielen Dank
Stefan