Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1804to1808
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zellen leeren

Zellen leeren
19.01.2021 10:34:17
Markus
Noch ein kleines Problem heute
Folgender Code funktioniert soweit super, sobald ich aber noch ein paar Zellen hinzufügen, meckert er diese an. Wenn ich die selben Zellen in ein weiteres Makro schreibe, führt er dieses dann wieder aus, also an den Zellen kann es nicht liegen. Es kommt mir so vor, als ob eine Begrenzung der Anzahl der Zellen vorgenommen wird.
Sub leeren2(control As IRibbonControl)
Sheets(1).Range("P39:P44,D46:D51,G46:G51,J46:J51,M46:M51,P46:P51,D53:D58,G53:G58,J53:J58, _
M53:M58,P53:P58").ClearContents
End Sub

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellen leeren
19.01.2021 10:50:55
Daniel
Hi
richtig.
das Problem ist, dass der Textstring mit den Zelladressen für die Range-Funktion nicht länger als 256 Zeichen lang sein darf.
hier muss man dann entweder in mehreren Schritten arbeiten, oder man sammelt über Union die Zellbereiche in einer Range-Variablen:
Set Bereich = Range("..max 256 Zeichen..")
Set Bereich = Union(Bereich, Range("..max 256 Zeichen..")
Bereich.ClearContents
bei Regelmäßiger Anordnung kann man ggf auch über Intersect aus Zeilen und Spalten die Zellen ganz gut beschreiben:
Intersect(Range("D:D,G:G,J:J,M:M,P:P"), Range("46:51,53:58")).ClearContents
Gruß Daniel
Anzeige
AW: Zellen leeren
19.01.2021 11:23:54
Markus

Intersect(Range("D:D,G:G,J:J,M:M,P:P"), Range("46:51,53:58")).ClearContents
Auch das klappt super Danke
AW: Zellen leeren
19.01.2021 10:53:32
Nepumuk
Hallo Markus,
es gibt eine 255-Zeichen Grenze für Strings im Range. Das kannst du so umgehen:
Sub leeren2(control As IRibbonControl)
    Dim objRange As Range
    With Worksheets(1)
        Set objRange = .Range("P39:P44,D46:D51,G46:G51,J46:J51,M46:M51,P46:P51,D53:D58,G53:G58,J53:J58, M53:M58,P53:P58")
        Set objRange=union(objRange,.range("A1:A5 ......))
    End With
    objRange.ClearContents
End Sub

Gruß
Nepumuk
Anzeige
AW: Zellen leeren
19.01.2021 11:13:39
Markus
Danke, klappt super und wieder was gelernt für's nächste Mal.
AW: Zellen leeren
19.01.2021 11:08:33
MCO
Hallo Markus!
Versuch das mal.
Mit UNION kannst du Bereiche vereinen.
Sub leeren2(control As IRibbonControl)
Dim Rng_ges As Range
Dim rng As Range
Dim i As Long
Set rng = Range("D46:D51,D53:D58")
Set Rng_ges = Range("P39:P44")
For i = 0 To 15 Step 3
rng.Offset(0, i).Select
Set Rng_ges = Union(Rng_ges, rng.Offset(0, i))
Next
rng.ClearContents
End Sub
Gruss, MCO

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige