Übungsaufgabe Ausgabe der Adresse in nichtzusammenhängendem Zellbereich
#1
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?
Top
#2
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)
Top
#3
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.
Top
#4
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)
Top
#5
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.
Top
#6
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:
  • juliatoll
Top
#7
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
Top
#8
(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.
Top
#9
@Wulfi

Erstelle deine Fehler erst bitte.
Top
#10
Hallöchen,

jeder sollte seine Fehler selber erstellen Smile

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)
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste