Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1868to1872
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

Anzahl Argumente für Bereich?

Anzahl Argumente für Bereich?
13.02.2022 11:26:35
unwissender
hallo,
brauche schon wieder einmal eure hilfe
wieviel argumente kann man bei der funktion union definieren?
wenn ich das so definiere, bringt er einen fehler beim kompilieren? bis zu DZ kommt kein fehler
gibt es evtl ne andere möglichkeit, soviel spalten auf einmal zu löschen?

Dim loeschbereich As Range
Set loeschbereich = Union(.Columns(1), .Columns(6), .Columns("H:T"), .Columns("W:Y") _
, .Columns("AB:AC"), .Columns("AE:BD"), .Columns("BF:BZ") _
, .Columns("CB:CC"), .Columns("CE:DD"), .Columns("DF:DZ") _
, .Columns("EB:EC"), .Columns("EE:ED"), .Columns("FF:FZ") _
, .Columns("GB:GC"), .Columns("GE:GD"), .Columns("HF:HZ") _
, .Columns("IB:IC"), .Columns("IE:ID"), .Columns("JF:JZ") _
, .Columns("KB:KC"), .Columns("KE:KD"), .Columns("LF:LZ") _
, .Columns("MB:MC"), .Columns("ME:MD"), .Columns("NF:NZ") _
, .Columns("OB:OC"), .Columns("OE:OD"), .Columns("PF:PZ") _
, .Columns("QB:QC"), .Columns("QE:QD"), .Columns("RF:RZ") _
, .Columns("SB:SC"), .Columns("SE:SD"), .Columns("TF:TZ") _
, .Columns("UB:UC"), .Columns("UE:UD"), .Columns("VF:VZ") _
, .Columns("WB:WC"), .Columns("WE:WD"), .Columns("XF:XZ") _
, .Columns("YB:YC"), .Columns("YE:YD"), .Columns("ZF:ZZ") _
, .Columns("AAB:AAC"), .Columns("AAE:AAD"), .Columns("ABF:ABZ") _
, .Columns("ACb:ACC"), .Columns("ACE:ACD"), .Columns("ADF:ADZ"))
loeschbereich.Delete

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Anzahl Argumente für Bereich?
13.02.2022 11:43:33
Yal
Hallo,
Du könntest deine Spalten als Text in einer Konstante definieren und mit einem For abarbeiten.
Vorsicht Fälle: wenn Du die Spalten nicht leeren sondern löschen willst, musst Du immer mit der letzten anfangen. Sonst ist nach Löschen der 2te Spalte die bisherige 3te Spalte nicht mehr die 3te Spalte.

Sub Spalten_löschen()
Dim i, Arr()
Const cSpalten = "A:A,F:F,H:T,W:Y" 'reicht für ein Test. Nur danach vervollständigen
Arr = Split(cSpalten, ",")
For i = UBound(Arr) To 0 Step -1
Worksheets ("Tabelle1").Range(Trim(Arr(i))).Delete
Next
Der Trim erlaubt Leerzeichen nach den Kommas in der cSpalten, sodass es leichter zu lesen wird.
VG
Yal
Anzeige
AW: Anzahl Argumente für Bereich?
13.02.2022 12:41:47
unwissender
vielen dank schon mal für die hilfe,
es kommt noch ein fehler - typen unverträglich? - muss ich noch etwas anpassen

With Sheets("Tabelle1")
Dim i, Arr()
Const cSpalten = "A:A,F:F,H:T,W:Y"
Arr = Split(cSpalten, ",")
For i = UBound(Arr) To 0 Step -1
.Range(Trim(Arr(i))).Delete
Next
end with

AW: Anzahl Argumente für Bereich?
13.02.2022 13:06:00
Yal
Hmm... war und bin nicht am Rechner, kann daher nicht testen.
Entweder:

.Range(Trim(Arr(i))).EntireColumn.Delete
Oder:

.Columns(Trim(Arr(i))).Delete
Mache bitte die Variablen- und Konstanten-Deklaration direkt nach dem Sub... nicht inmitten vom Code. Es ist nicht nur "usual practice" sondern manchmal auch Fehlerquelle.
VG
Yal
Anzeige
AW: Anzahl Argumente für Bereich?
13.02.2022 13:27:41
unwissender
vielen dank
habe ne lösung gefunden

With Sheets("Tabelle1")
.Range("A:A,F:F,H:T,W:Y,AB:AC,AE:BD,BF:BZ,CB:CC,CE:DD,DF:DZ,EB:EC,EE:FD").Delete
end with
funktioniert auch
trotzdem danke

AW: Anzahl Argumente für Bereich?
13.02.2022 13:57:43
Yal
Sehr gut!
Wenn Du nur eine einzige Anweisung, die sich auf Tabelle1 bezieht, stellt sich die Frage ob der with notwendig ist.
VG
Yal
AW: Anzahl Argumente für Bereich?
13.02.2022 13:34:39
GerdL
Moin,
bei der direkten Objektbearbeitung kommt man i.d.R. ohne Arrays aus.
Es gibt Limitationen. Die kannst du hier bspw. so umgehen.
Ich vermute (ungetestet), dass eine Rückwärtsschleife, die nur je 2 Spalten einzeln löscht sogar schneller sein kann.

Sub Unit()
Dim x As Long, R As Range
Set R = Union(Columns(1), Columns(6), Columns("H:T"), Columns("W:Y"))
For x = 28 To Columns.Count - 3 Step 3
Set R = Union(R, Columns(x).Resize(, 2))
Next
R.EntireColumn.Delete
End Sub
Gruß Gerd
Anzeige
AW: Anzahl Argumente für Bereich?
13.02.2022 14:06:08
unwissender
hallo und vielen dank für die tipps
habe jetzt mit meiner primitiven methode herausbekommen, dass bei ZZ schluss ist, danach muss man den befehl neu geben.
leider
aber immerhin auch eine erkenntnis:

With Sheets("tabelle1")
.Range("A:A,F:F,H:T,W:Y,AB:AC,AE:BD,BF:BZ,CB:CC,CE:DD,DF:DZ,EB:EC,EE:FD,FF:FZ,GB:GC,GE:HD,HF:HZ,IB:IC,IE:JD,JF:JZ,KB:KC,KE:LD,LF:LZ,MB:MC,ME:ND,NF:NZ,OB:OC,OE:PD,PF:PZ,QB:QC,QE:RD,RF:RZ,SB:SC,SE:TD,TF:TZ,UB:UC,UE:VD,VF:VZ,WB:WC,WE:XD,XF:XZ,YB:YC,YE:ZD,ZF:ZZ").Delete
' Spaltenbuchstaben neu ermitteln!
.Range("AW:AX,AZ:BY,CA:CU,CW:CX,CZ:DY,EA:EZ").Delete
End With

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige