Registriert seit: 10.09.2014
Version(en): 2013
Hallo Leute, bräuchte zu Übungszwecken eure Hilfe. Ich habe folgenden Code: Code: Sub Auswahl_Abarbeiten() Dim i As Integer
Range("A1:A2,C3,E4").Select If Selection Is Nothing Then Exit Sub
For i = 1 To Selection.Cells.Count 'Welcher Code muss hier stehen, damit nacheinander die einzelnen Adressen aus dem 'nicht zusammenhängenden Zellbereich erscheinen, also Adresse A1, A2, C3, E4 debug.print ???? Next i
End Sub
Welcher Code muss ich in der For-Schleife eingeben, damit nacheinander die einzelnen Adressen der Zellen aus dem ausgewählten Zellbereich erscheinen?
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
Hallo Julia! Ich würde einzelne Range-Objekte (Zellen) im größeren Range-Objekt abklappern: Sub Auswahl_Abarbeiten()
Dim rng As Range, Zelle As Range
Set rng = Range("A1:A2,C3,E4")
For Each Zelle In rng
Debug.Print Zelle.Address
Next
End Sub Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Registriert seit: 10.09.2014
Version(en): 2013
Hallo Ralf,
daran habe ich auch schon gedacht. Aber das Ganze ist eine Übungsaufgabe und der Code soll nur innerhalb der For- Schleife verändert werden. Aber schon mal vielen Dank für deine Unterstützung.
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
Hi Julia! Gestatte mir die Frage: Was ist das für ein Buch / eine Bildungseinrichtung, die mit .Select, Selection und einem vollkommen überflüssigem Exit Sub arbeitet?
Debug.Print Selection(i).Address oder Debug.Print Selection.cells(i).Address funktionieren jedenfalls nicht.
Stelle doch mal die Aufgabe im Wortlaut hier rein.
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Registriert seit: 10.09.2014
Version(en): 2013
Hallo,
bitte vergiß den unglücklichen Exit Sub Befehl. Ansonsten ist es eine Uni-Aufzeichnung. Es soll eben eine Alternative zu dem sonst üblichen For Each entwickelt werden. Und ja debug.Print Selection.Cells(i).Address funktioniert nicht. So weit waren wir leider auch schon.
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
Hi! Als rein sportliche Herausforderung mal mit zwei verschachtelten For … To Schleifen (als Dienst an die Wissenschaft :21: ). (Schließlich muss ja nicht alles Sinn machen) Sub Auswahl_Abarbeiten2()
Dim i As Integer, k As Integer, rng As Range
Set rng = Range("A1:A2,C3,E4")
For k = 1 To rng.Areas.Count
For i = 1 To rng.Areas(k).Cells.Count
Debug.Print rng.Areas(k).Cells(i).Address
Next i
Next k
End Sub Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:1 Nutzer sagt Danke an RPP63 für diesen Beitrag 28
• juliatoll
Registriert seit: 29.09.2015
Version(en): 2030,5
26.01.2016, 21:57
(Dieser Beitrag wurde zuletzt bearbeitet: 26.01.2016, 21:57 von snb.)
Code: Sub M_snb() Cells(10, 1).Resize(, 4) = [transpose(choose(row(1:4),A1,A2,C3,E4))]
Cells(12, 1).Resize(, 4) = Array([A1], [A2], [C3], [E4])
For j = 1 To UsedRange.Cells.Count If Not Intersect(UsedRange.Cells(j), Range("A1:A2,C3,E4")) Is Nothing Then c00 = c00 & "_" & Intersect(UsedRange.Cells(j), Range("A1:A2,C3,E4")).Value Next Cells(14, 1).Resize(, 4) = Split(Mid(c00, 2), "_") End Sub
Registriert seit: 25.09.2014
Version(en): 2010-2013
(26.01.2016, 21:57)snb schrieb: Code: Sub M_snb() Cells(10, 1).Resize(, 4) = [transpose(choose(row(1:4),A1,A2,C3,E4))]
Cells(12, 1).Resize(, 4) = Array([A1], [A2], [C3], [E4])
For j = 1 To UsedRange.Cells.Count If Not Intersect(UsedRange.Cells(j), Range("A1:A2,C3,E4")) Is Nothing Then c00 = c00 & "_" & Intersect(UsedRange.Cells(j), Range("A1:A2,C3,E4")).Value Next Cells(14, 1).Resize(, 4) = Split(Mid(c00, 2), "_") End Sub
Hallo, dein Code funktioniert nicht. Der Compiler meldet bei mir stets Objekt erforderlich. Könntest du deine vielleicht nochmal etwas überarbeiten.
Registriert seit: 29.09.2015
Version(en): 2030,5
@Wulfi
Erstelle deine Fehler erst bitte.
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen, jeder sollte seine Fehler selber erstellen Hallo Julia, ergänze bitte jedes UsedRange so: ActiveSheet.UsedRange
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
|