Hallo,
in einem Blatt habe ich zwei zu zwei vertikal verbundene Zellen in A5:Y66.
Mit einer Makro hebe ich die Verbindung auf, aber wenn ich die Range sortieren will bekomme ich die Fehlermeldung 1004: "to do this all the merged cells must be of the same size", wobei ich kontrolliert habe: es gibt keine verbundenen mehr.
Wie kann ich dieses Problem lösen?
Der Code:
1. der Originalcode: er funktioniert, ist aber sehr langsam
Diesen habe ich aufgezeichnet, weil der erste sehr langsam ist, der aufgezeichnete hingegen viel schneller.
Es gibt die Variable "Ws" im Originalcode. Muß die auch vor "Range" stehen? Ich habe es versucht mit Ws.Range(...), aber das scheint nicht richtig zu sein?
Ich habe eine Beispieldatei erstellt, aber da funktioniert die aufgezeichnete Makro. Das Problem wird wohl bei der Variable liegen?
Ich bräuchte eine kleine Hilfe dafür.
Im voraus dankend,
Alooha
in einem Blatt habe ich zwei zu zwei vertikal verbundene Zellen in A5:Y66.
Mit einer Makro hebe ich die Verbindung auf, aber wenn ich die Range sortieren will bekomme ich die Fehlermeldung 1004: "to do this all the merged cells must be of the same size", wobei ich kontrolliert habe: es gibt keine verbundenen mehr.
Wie kann ich dieses Problem lösen?
Der Code:
1. der Originalcode: er funktioniert, ist aber sehr langsam
Code:
Sub DatenAufbereiten(WS As Worksheet)
Dim Zelle As Range
WS.Unprotect
For Each Zelle In WS.Range("A5:AC66")
If Zelle.MergeCells = True Then
With Zelle.MergeArea
.MergeCells = False
End With
End If
Next
WS.Range("A5:A66").Copy
WS.Range("A5:A66").PasteSpecial xlPasteValues
WS.Range("A5:Y66").Sort Key1:=WS.Range("A5"), Order1:=xlAscending
End Sub
Diesen habe ich aufgezeichnet, weil der erste sehr langsam ist, der aufgezeichnete hingegen viel schneller.
Code:
Range("B1:E66").Select
Selection.Delete Shift:=xlToLeft
Range("A5:Y66").Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Und dann habe ich das Stück Code des Originalcode's, das die Sortierung durchführt, hintendran gehängt:
WS.Range("A5:A66").Copy
WS.Range("A5:A66").PasteSpecial xlPasteValues
WS.Range("A5:Y66").Sort Key1:=WS.Range("A5"), Order1:=xlAscending
End Sub
Es gibt die Variable "Ws" im Originalcode. Muß die auch vor "Range" stehen? Ich habe es versucht mit Ws.Range(...), aber das scheint nicht richtig zu sein?
Ich habe eine Beispieldatei erstellt, aber da funktioniert die aufgezeichnete Makro. Das Problem wird wohl bei der Variable liegen?
Ich bräuchte eine kleine Hilfe dafür.
Im voraus dankend,
Alooha