ich folgende Do
Schleife erstellt:VBA Do-Schleife funktioniert nicht
Sub Test2()
Set sht = Worksheets("Calculations")
LastRow = sht.Cells(sht.Rows.Count, 1).End(xlUp).Row + 1
LastCol = (LastRow - 2) * 3
i = 1
r = 3
c = 5
Do Until r > LastRow
sht.Cells(r, c).Select
RangeName = "Airline_" & i
Set Cell = sht.Cells(r, 5)
sht.Names.Add Name:=RangeName, RefersTo:=Cell
Do Until c > LastCol
RangeName = "Airline_" & i
Set Cell = Application.Union(Range("Airline_" & i), sht.Cells(r, c))
sht.Names.Add Name:=RangeName, RefersTo:=Cell
c = c + 3
Loop
i = i + 1
r = r + 1
Loop
End Sub
Auf den ersten Blick scheint alles in Ordnung zu sein. Aber wenn r
4 wird, sieht es so aus, als ob die Do until c > LastCol
nicht funktioniert.
Im Folgenden sind einige Screenshots, als Erklärung:
Erste Reihe, die funktioniert:
Zweite Reihe, die nicht funktioniert:
Sie müssen wahrscheinlich 'c = 5' vor Beginn Ihres' Do einstellen Bis c> LastCol' Schleife, sonst 'c' noch den Wert am Ende der vorherigen Schleife hatte. (Ich bin nicht sicher, was der Zweck Ihrer 'sht.Cells (r, c) .Select' ist - Sie müssen tatsächlich' c = 5' vor dieser Zeile setzen, aber es wäre wahrscheinlich besser, das einfach zu verschieben (Linie), um ehrlich zu sein. – YowE3K