Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1728to1732
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

Range in Schleife ändern

Range in Schleife ändern
11.12.2019 11:54:09
TomatenAugen
Hallo, vllt kann mir ja jemand weiterhelfen. Ich habe meinen Code mal vereinfacht dargestellt:
Sub Test()
Dim i As Long
Dim rng As Range
Dim A As String
Dim B As String
Dim C As String
For i = 1 To 5
rng = "Cells(i,9),Cells(i,12),Cells(i,15)"
Set A = CDate(WorksheetFunction.Small(Range(rng), 1))
Set B = CDate(WorksheetFunction.Small(Range(rng), 2))
Set C = CDate(WorksheetFunction.Small(Range(rng), 3))
Next
End Sub
Leider funktioniert das nicht, weil er das Range nicht richtig anerkennt. Ich will aber trotzdem, dass er für die Spalten 1-5 die jeweiligen As ausgibt (ich weiß hier wird der Wert immer überschrieben, passiert in meinem richtigen Code nicht). Vllt hat jemand eine Lösung?

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Range in Schleife ändern
11.12.2019 12:14:46
ede
Hallo,
anbei mal ein vereinfachter Ansatz, welchen du auf deinen Code ableitenmusst:

Sub Test()
Dim i As Long
Dim rng As Variant
For i = 1 To 3
rng = Array(Tabelle1.Cells(i, 9), Tabelle1.Cells(i, 12), Tabelle1.Cells(i, 15))
MsgBox WorksheetFunction.Small(rng, 1)
Next
End Sub

gruss
ede
AW: Range in Schleife ändern
11.12.2019 12:27:36
Matthias
Moin!
Hier dein Code mal geändert zurück. Gab da ein paar Fehler. A , B und C snd nicht strings sondern Dates. Du hast ja untem imCode dort auch Cdate. Da kann du den Wert dort nur übergeben also ohne set. Set nur für Objekte wie bspw. Range. Deine Ranges kannst du mit UNion verbinden. Dort muss dann vor da rng ein set. Damit kannst du dann weiterarbeiten und brauchst kein extra Range(rng) - ist ja schon eine Range. Sieht dann wie folgt aus:
Sub Test()
Dim i As Long
Dim rng As Range
Dim A As Date
Dim B As Date
Dim C As Date
For i = 1 To 5
Set rng = Union(Cells(i, 9), Cells(i, 12), Cells(i, 15))
A = CDate(WorksheetFunction.Small(rng, 1))
B = CDate(WorksheetFunction.Small(rng, 2))
C = CDate(WorksheetFunction.Small(rng, 3))
Next
End Sub

VG
Anzeige

150 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige