Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Index außerhalb des gültigen Bereichs

Index außerhalb des gültigen Bereichs
07.11.2024 08:13:39
Christian
    ' Arbeitsblatt festlegen

Set ws = ThisWorkbook.Worksheets("Liste")

' Deaktivieren von Bildschirmaktualisierung und Berechnung für schnellere Ausführung
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.EnableEvents = False

' Letzte Zeile in Spalte B finden
lastRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row

' Daten in Array einlesen (mit allen relevanten Spalten)
arrData = ws.Range("A2:GN" & lastRow).Value

' Schleife von der dritten Zeile bis zur letzten Zeile (ab i = 2 für den Vergleich)
For i = 2 To lastRow ' Vergleich erfolgt erst bei i = 2 (d.h. Zeile 2 und Zeile 1 sind gültig)
' Überprüfen, ob der Text in der aktuellen Zeile mit dem der vorherigen Zeile übereinstimmt
If i > 2 And arrData(i, 2) = arrData(i - 1, 2) Then


Hallo,

ich bitte euch mal zu schauen, weshalb Excel meint, in der letzten genannten Zeile wäre der Index außerhalb des gültigen Bereichs, ich kann mir da leider keinen Reim darauf machen.

Danke
Christian
Anzeige

22
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Das ist klar,...
07.11.2024 08:35:29
Case
Moin Christian, :-)

… denn wenn z. B. von A1:GN10 belegt ist, dann ist lastRow = 10.

Dein arrData geht aber nur bis 9 (A2:GN10). Somit läuft der letzte Schleifendurchlauf auf einen Fehler, denn arrData(10, 2) gibt es nicht. ;-)

Schreibe z. B.: ;-)

arrData = ws.Range("A2:GN" & lastRow + 1).Value


Das behebt den Fehler, ob das aber zu deinen Zielen passt, musst du entscheiden. ;-)

Servus
Case
Anzeige
AW: Das ist klar,...
07.11.2024 10:20:58
Christian
Hallo Case,

du hast irgendwie recht, irgendwie klappt es nicht so wie es soll

Ich habe folgendes vor: (Tabelle ist zu Beginn nach Spalte B sortiert)

1. alle Zeilen, die denselben Text in Spalte B haben, zu einer Zeile zusammenfassen, indem ich die Texte, die jeweils in den Spalten E bis GN stehen in eine Zeile schreibe (die Spalten A bis D sind in den jeweiligen Zeilen identisch).

2. Die dann überflüssigen Zeilen löschen

3. Zeile für Zeile den Bereich E:GN sortieren, zuerst Texte die auf html enden, dann Texte die auf jpg enden

4. die ganze Tabelle nach Spalte C sortieren, erst die Texte die mit tt beginnen, dann die anderen Texte, dabei die anderen Texte in eine zufällige Reihenfolge bringen

5. Spalte A neu berechnen, Formel =WENN(LINKS(C2;2)="tt";C2&D2&ANZAHL2(E2:GN2);"")

Die Wahrscheinlichkeit, dass durch das Zusammenfassen der Texte mehr Spalten als bis GN benötigt werden geht gegen 0.

Kannst du daraus ein Makro basteln? Ich geb ja zu ich habe es mit Chatgpt probiert, aber ich weiß nicht mal, ob es funktioniert, da es sich totrechnet und nicht endet:

Sub ZusammenfassenUndSortierenMitArrays()


Dim ws As Worksheet
Dim lastRow As Long
Dim i As Long, j As Long
Dim combinedText As String
Dim data As Variant
Dim outputData As Variant
Dim helperColumn As Variant
Dim countNonEmpty As Long

' Arbeitsblatt festlegen
Set ws = ThisWorkbook.Sheets("Liste") ' Arbeitsblattname auf "Liste" geändert

' Bestimme die letzte Zeile mit Daten
lastRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row

' Daten in ein Array laden
data = ws.Range("A2:GN" & lastRow).Value ' Alle Daten in A bis GN (Zeile 2 bis letzte Zeile)

' Hilfsspalte für Sortierkriterien
helperColumn = Application.Transpose(ws.Range("B2:B" & lastRow).Value)

' Array für die Ausgabe erstellen
ReDim outputData(1 To UBound(data, 1), 1 To 164) ' Ausgabearray mit der gleichen Größe

' Schritt 1: Zeilen zusammenfassen, die denselben Text in Spalte B haben
Dim rowDict As Object
Set rowDict = CreateObject("Scripting.Dictionary")

For i = 1 To UBound(data, 1)
Dim bValue As String
bValue = data(i, 2) ' Spalte B
If Not rowDict.Exists(bValue) Then
rowDict.Add bValue, i
Else
' Kombiniere die Texte von Spalte E bis GN (Spalte 5 bis 164)
combinedText = ""
For j = 5 To 164 ' E bis GN sind die Spalten 5 bis 164
If data(i, j) > "" Then
If combinedText = "" Then
combinedText = data(i, j)
Else
combinedText = combinedText & " " & data(i, j)
End If
End If
Next j
' Setze die kombinierten Texte in der ersten Zeile der Gruppe
outputData(rowDict(bValue), 5) = combinedText
' Markiere diese Zeile zum Löschen (keine Daten in outputData für diese Zeile)
data(i, 2) = "" ' Lösche den Text in Spalte B, um sie später zu überspringen
End If
Next i

' Schritt 2: Überflüssige Zeilen löschen (in data mit leeren Texten)
Dim deleteCount As Long
deleteCount = 0
For i = 1 To UBound(data, 1)
If data(i, 2) = "" Then
deleteCount = deleteCount + 1
Else
' Übertrage die Zeilen, die nicht gelöscht werden
outputData(i - deleteCount, 1) = data(i, 1) ' Spalte A
outputData(i - deleteCount, 2) = data(i, 2) ' Spalte B
outputData(i - deleteCount, 3) = data(i, 3) ' Spalte C
outputData(i - deleteCount, 4) = data(i, 4) ' Spalte D
For j = 5 To 164
outputData(i - deleteCount, j) = data(i, j) ' Spalten E bis GN
Next j
End If
Next i

' Schritt 3: Bereich E:GN sortieren nach Dateiendungen
For i = 1 To UBound(outputData, 1)
' Extrahiere die Werte von Spalte E bis GN
Dim sortData() As Variant
sortData = Application.Index(outputData, i, 0) ' Alle Spalten E bis GN für die aktuelle Zeile

' Jetzt die Daten nach .html und .jpg sortieren
Call SortRangeByExtension(sortData)

' Die sortierten Daten zurückschreiben
For j = 5 To 164
outputData(i, j) = sortData(j - 4)
Next j
Next i

' Schritt 4: Nach Spalte B sortieren
' Hilfsspalte für Sortierung nach "tt" oder andere zufällige Reihenfolge
For i = 1 To UBound(helperColumn, 1)
If Left(helperColumn(i, 1), 2) = "tt" Then
helperColumn(i, 1) = "tt"
Else
helperColumn(i, 1) = "andere"
End If
Next i

' Schritt 5: Spalte A neu berechnen
For i = 1 To UBound(outputData, 1)
If Left(outputData(i, 3), 2) = "tt" Then
' Zähle die nicht-leeren Zellen in den Spalten E bis GN
countNonEmpty = 0
For j = 5 To 164
If outputData(i, j) > "" Then
countNonEmpty = countNonEmpty + 1
End If
Next j

' Berechne den Wert in Spalte A
outputData(i, 1) = outputData(i, 2) & outputData(i, 3) & countNonEmpty
Else
outputData(i, 1) = "" ' Sonst leeren
End If
Next i

' Schritt 6: Ergebnis zurück in die Arbeitsblattzellen schreiben
ws.Range("A2:GN" & lastRow).Value = outputData

' Berechnungen und Bildschirmaktualisierung wieder einschalten
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
Application.EnableEvents = True

End Sub

' Hilfsfunktion zum Sortieren nach Dateiendungen
Sub SortRangeByExtension(ByRef sortData As Variant)
Dim temp As String
Dim i As Long, j As Long

' Bubble sort, um nach .html und .jpg zu sortieren
For i = LBound(sortData) To UBound(sortData) - 1
For j = i + 1 To UBound(sortData)
If Right(sortData(i), 4) = ".jpg" And Right(sortData(j), 4) = ".html" Then
' Tauschen
temp = sortData(i)
sortData(i) = sortData(j)
sortData(j) = temp
End If
Next j
Next i
End Sub

Anzeige
Hier würde eine...
07.11.2024 10:36:53
Case
Moin Christian, :-)

... Beispieldatei mit Wunschergebnis sehr hilfreich sein. ;-)

Servus
Case
bekommst du geb mir noch ne halbe Stunde owT
07.11.2024 10:38:18
Christian
AW: bekommst du geb mir noch ne halbe Stunde owT
07.11.2024 11:13:32
Christian
https://www.herber.de/bbs/user/173443.xlsx

hoffe du verstehst was ich meine, auch wenn ich die Originaltexte stark verfälscht habe. Beachte dabei bitte, dass das Original bis Spalte GN geht und knapp 78000 Zeilen hat. Tabelle ist wie gesagt zu Beginn nach Spalte B sortiert.

DAnke
Christian
Anzeige
AW: bekommst du geb mir noch ne halbe Stunde owT
07.11.2024 21:39:38
Luschi
Hallo Christian,

bei der Datenmenge bleibt bei Excel eigentlich nur noch Power Query übrig.
Hier mal mein Versuch dazu: https://www.herber.de/bbs/user/173454.xlsx

Gruß von Luschi
aus klein-Paris

PS: bei den vielen Wünschen muß´man schon tief in die Trickkiste von PQ-M greifen und kann sich nicht auf das PQ-Oberflächen-Menü verlassen.
Anzeige
AW: bekommst du geb mir noch ne halbe Stunde owT
07.11.2024 21:56:27
Christian
Hallo Luschi,

ok, das mit den Datenmengen muss ich vlt. kurz relativieren. Im Bereich E2:GN77752 stehen genau 300300 Texte alles andere sind Leerzellen und die Texte stehen auch alle beisammen in den jeweiligen Zeilen. Es gibt lediglich eine Zeile, die bis Spalte GN geht. Daher sagte ich ja auch, dass die Wahrscheinlichkeit, dass durchs Zusammenfassen der Bereich größer wird, gegen 0 geht.

Aber zurück zu PQ. Ich hatte einen eigenversuch gestartet, indem ich den Spaß entpivotiert hab und dann wieder pivotiert das ging noch aber das Laden dann hab ich nach 5 Min abgebrochen.

Ich schaue mir dann mal jetzt deinen Vorschlag an, melde mich spätestens morgen bei dir.

Danke schonmal
Christin
Anzeige
AW: bekommst du geb mir noch ne halbe Stunde owT
08.11.2024 07:17:23
Christian
Hallo Luschi,

da ist ja leider nichts sortiert und die Formel fehlt auch noch...

Schaust du bitte nochmal...

Gruß
Christian
AW: bekommst du geb mir noch ne halbe Stunde owT
08.11.2024 08:42:54
Luschi
Hallo Christian,
da ist ja leider nichts sortiert
Sorry..., das war mein Fehler. hatte die bereits sortierte Liste in 1er Teilabfrage aber nicht verwendet, sondern die Originalreihenfolge. Jetzt sollte das Problem behoben sein.
Das Problem mit der Formel in Spalte 'A' habe ich so nicht verstanden. Mach doch in dem jetzigen Lösungsvorschlag die passenden Beispieldaten für Spalte 'A' händisch rein.

https://www.herber.de/bbs/user/173459.xlsx

Gruß von Luschi
aus klein-Paris



Anzeige
Spalte a
08.11.2024 11:52:35
Christian
Hallo luschi, Spalte a ist eine Prüfung, ob der Text in Spalte c mit tt beginnt, wenn nein leer lassen, wenn ja Spalte c & Spalte d & Anzahl Texte in e:gn ist das in pq nicht machbar? Ich dachte eigentlich das wäre der einfachste Schritt. Die Idee dahinter ist eine Sicherungskopie der für mich relevantesten Zeilen, bevor ich diese Abfrage aktualisiere, um dann anhand dieser Spalte sehen zu können, ob in relevanten Zeilen Texte hinzugefügt wurden indem ich die original Spalte a und die Kopie Spalte a miteinander Vergleiche.
Anzeige
AW: Spalte a
08.11.2024 13:12:43
Luschi
Hallo Christian,
Spalte a ist eine Prüfung, ob der Text in Spalte c mit tt beginnt>/pre>


genau da liegt auch das Problem:
- es erfolgt eine Gruppierung der Spalte beginnend mit 'site:www.imdb.com/...' in 1 Liste
- diese Liste wird nach Deinen Wünschen (*.jpg bzw. *.html) sortiert
- zu 'tt00000005' bzw. 'nm00000006' gibt es keine Sortierregeln
- und werden demzufolgen aphanumerisch aufsteigend sortiert
- damit kommt 'tt00000005' immer nur als 2. ins Ziel und wird somit NIE in Spalte 'C' erscheinen
- die Sortierfolge einfach umdrehen geht auch nicht, dann wird 'tt00000005' immer Bummelletzter
- denn die anderen Werte wie Text1.html usw. drängeln sich vor
- man könnte natürlich auch hier tauschen, aber das mußt Du entscheiden

Für mich ist aber viel wichtiger zu wissen, ob Du in der Lage bist, den PQ-M-Code in die Original-Exceldatei zu transferieren.
Und 1 etwas praxisnahere Demodatei wäre auch nicht schlecht.

Gruß von Luschi
aus klein-Paris




Anzeige
AW: Spalte a
08.11.2024 13:22:50
Christian
Hallo Luschi,

erstmal sorry, ich habe die letzte Nachricht vom Zug aus geschrieben, ohne im Zug deinen 2. Vorschlag gesehen zu haben.
Ich glaube du hast etwas misverstanden. Die Zeilenweise Sortierung soll erst in Spalte E beginnen (steht auch so in Zeile 31), somit würden die Texte die mit tt beginnen immer in Spalte C bleiben.
Die Spaltenweise Sortierung danach müsste ja eigentlich meines Erachtens einfach mit einer Hilfsspalte a la =WENN(LINKS(C2;2)="tt";0;ZUFALLSZAHL()) lösbar sein, da ja weiterhin alle Texte die mit tt beginnen in Spalte C stehen. Eine Sortierung nach dieser Spalte bringt die Tabelle ja in die gewünschte Reihenfolge, erst die Texte die mit TT beginnen dann den Rest in einer zufälligen Reihenfolge.

Gruß
Christian

PS: Was genau meinst du denn mit einer praxisnahen Datei, eine Datei in der Größe der Originaldatei lässt sich hier nicht hochladen...
Anzeige
In der Anlage...
08.11.2024 13:15:16
Case
Moin Christian, :-)

... zwei Möglichkeiten (Luschi's M-Code angepasst): ;-)
https://www.herber.de/bbs/user/173468.xlsx

Ist jetzt "aus der Hüfte geschossen". Einmal bezogen auf Spalte A und einmal mit Prüfung von Spalte C nach "tt*".
Habe gerade wenig Zeit (noch ein Projekt an der Backe). Ausserdem läuft Snooker. ;-)
https://www.eurosport.de/snooker/

VBA kann ich mir frühestens am Wochenende anschauen, wenn das noch nötig ist. PQ wäre auch meine erste Wahl. ;-)

Servus
Case
Anzeige
AW: In der Anlage...
08.11.2024 13:32:14
Christian
Hallo Case,

wusste gar nicht dass mein Vater Ahnung von Excel hat (er ist auch nicht vom TV wegzubekommen wenn Snooker läuft) :-)

Aber jetzt im Ernst, ich werde auf jeden Fall im Endeffekt eine VBA Lösung nutzen. Weil ich vorhabe mit VBA die Spalte A vorher und nachher zu vergleichen, ob sich was bei relevanten Zeilen geändert hat (diesen Code habe ich bereits).

Aber ob ich diesem Code jetzt sage, er soll dein Makro starten oder eine PQ Abfrage aktualisieren, spielt für mich keine Rolle.

Würde also auch eine PQ Lösung nehmen.

Ich schaue mir dann jetzt mal deinen Vorschlag an...

Gruß
Christian
Anzeige
AW: In der Anlage...
08.11.2024 14:52:00
Chris
Hallo Case,

erstmal vielen Dank.

Deine beiden Vorschläge enthalten immer noch einen Fehler, den auch Luschis Vorschlag bereits enthalten hat.

Wenn es darum geht, die Zeilen zu sortieren nach Texten die auf html und jpg enden, sollen auch nur diese sortiert werden, also die Texte ab Spalte E.
Eure Vorschläge sortieren auch die Texte in den Spalten C und D, sodass die Texte die mit tt beginnen und die die mit nm beginnen vertauscht wurden.

Schau dir in deiner Datei mal die Zellen C5 und D5 an bzw. C20 und D20, dann siehst du was ich meine, der Text der mit tt anfängt und der mit nm anfängt wurden vertauscht.

Danke
Christian
Anzeige
mein weiterer Eigenversuch
08.11.2024 19:01:34
Christian
Hallo Luschi,

erstmal zu deiner Frage, ob ich mich in der Lage sehe, eure Vorschläge auf meine Originaldaten anzuwenden... zuerst war ich mir bei diesem M-Code selbst nicht sicher, aber jetzt weiß ich, es hat funktioniert.

Hallo Case,

ich habe deinen ersten Vorschlag versucht, selber abzuändern, was ich auf jeden Fall geschafft habe ist, dass die Spalten C und D nicht mehr sortiert werden und ich habe es auch geschafft die Sortierung nach Spalte C einzubauen. Der Code sieht jetzt so aus:

let

Quelle = Excel.CurrentWorkbook(){[Name="Tabelle7"]}[Content],
Spaltennamen = Table.ColumnNames(Quelle),
#"Spalten ab 5" = List.Skip(Spaltennamen, 4),
#"Zusammengeführte Spalten" = Table.CombineColumns(Quelle, #"Spalten ab 5",
Combiner.CombineTextByDelimiter("|", QuoteStyle.None),"Kombi"),
#"Gruppierte Zeilen" = Table.Group(#"Zusammengeführte Spalten", {"2", "3", "4"},
{
{"1", each
let
ErsteZeileText = Text.BeforeDelimiter(List.First([1]), " "),
SummenWerte = List.Sum(List.Transform(_[1], each try Number.From(Text.AfterDelimiter(_, " ")) otherwise 0))
in
ErsteZeileText & " " & Text.From(SummenWerte), type text},
{"Gruppe", each Text.Combine(_[Kombi], "|"), type text}
}),
#"Spalte Transformieren" =
let a = Table.TransformColumns(#"Gruppierte Zeilen", {{"Gruppe", each Text.Split(_, "|")}}),
b = Table.TransformColumns(a, {{"Gruppe", each List.RemoveMatchingItems(_, {""})}}),
c = Table.TransformColumns(b, {{"Gruppe", each List.Distinct(_, Comparer.OrdinalIgnoreCase)}}),
d_1 = Table.TransformColumns(c, {{"Gruppe", each
let a = _,
b = List.Transform(a, (j)=>
if Text.Contains(j, ".html") then "11-" & j
else if Text.Contains(j, ".jpg") then "12-" & j
else "10-" & j)
in List.Sort(b, Order.Ascending)}}),
d_3 = Table.TransformColumns(d_1, {{"Gruppe", each
let a = _,
b = List.Transform(a, (j)=> Text.AfterDelimiter(j, "-", 0))
in b}}),
e = Table.TransformColumns(d_3, {{"Gruppe", each Text.Combine(_, " | ")}})
in e,
#"Anzahl neue Spalten" = List.Max(
List.Transform(
#"Spalte Transformieren"[Gruppe],
each List.Count( List.Select( Text.ToList(_), each _= "|"))) ) + 1,
#"neue Spaltennamen" = List.Transform({1..#"Anzahl neue Spalten"}, each "Sp. " & Text.From(_)),
#"Spalte nach Trennzeichen teilen" = Table.SplitColumn(#"Spalte Transformieren", "Gruppe",
Splitter.SplitTextByDelimiter(" | ", QuoteStyle.Csv), #"neue Spaltennamen"),
#"Sortierte Zeilen" = Table.Sort(#"Spalte nach Trennzeichen teilen",{{"1", Order.Descending}}),
#"Entfernte Spalten" = Table.RemoveColumns(#"Sortierte Zeilen",{"1"}),
#"Hinzugefügte benutzerdefinierte Spalte" = Table.AddColumn(#"Entfernte Spalten", "Benutzerdefiniert", each if Text.Start(Text.From([3]), 2) = "tt" then 0 else Number.RandomBetween(0, 1)),
#"Sortierte Zeilen1" = Table.Sort(#"Hinzugefügte benutzerdefinierte Spalte",{{"Benutzerdefiniert", Order.Ascending}}),
#"Entfernte Spalten1" = Table.RemoveColumns(#"Sortierte Zeilen1",{"Benutzerdefiniert"})
in
#"Entfernte Spalten1"


Was meinem Wunschergebnis schon sehr nahe kommt. Was jetzt in dem Code noch fehlt, ist die Spalte A, aber da bin ich gerade dabei zu überlegen ob ich da nicht generell eine geschicktere Lösung finde, die Ziele die ich damit bezweckt habe, zu erreichen, daher fehlt dieser Teil jetzt ganz. Selbst wenn ich die Spalte wieder einführe, das mit der Anzahl der Texte hat sich auf jeden Fall erledigt und eine Kombination aus 2 Spalten [3]&[4] bekomme ich gerade noch selbst hin :-).

Damit habe ich dann jetzt erst mal eine aus meiner Sicht funktionierende Lösung.

Danke auf jeden Fall für all eure Hilfe und Unterstützung und ein schönes Wochenende

Christian
Anzeige
AW: mein weiterer Eigenversuch
09.11.2024 10:10:19
Luschi
Hallo Christian,
nur den PQ-M-Code veröffentlichen, ohne die dazugehörige Datenbasis mitzuliefern nützt keinem Helfer etwas.
In unseren bishereigen Beispiuelten gibt es
- keisne Tabelle7 und damit auch
- keine Spalten mit der Bezeichnung '2'. '3', '4'

Somit isieht das Ergebnis so aus:
Userbild
Gruß von Luschi
aus klein-Paris

Anzeige
Mit Anpassung...
09.11.2024 10:48:49
Case
Moin, :-)

... auf die Beispieldaten: ;-)
https://www.herber.de/bbs/user/173482.xlsx

Habe jetzt nicht mehr weiter dran probiert. Da bräuchte man mehr Daten. ;-)

Servus
Case
AW: Mit Anpassung...
09.11.2024 11:59:04
Christian
Hallo Case,

ich hatte ja gesagt, dass der von mir gepostete Code eine aus meiner Sicht funktionierende Lösung darstellt, bin jetzt mal gespannt was du trotzdem noch geändert hast.
Ich hab ihn eigentlich nur gepostet, damit ihr seht was dabei rausgekommen ist. Nicht mit der Erwartung, dass er nochmal geändert wird.

Gruß
Christian
Anzeige
Habe in der Datei...
09.11.2024 12:06:43
Case
Moin Christian, :-)

... nichts geändert. Nur an die Beispieldaten angepasst. ;-)

Servus
Case
AW: mein weiterer Eigenversuch
09.11.2024 11:56:09
Christian
Hallo Luschi,

ich habe aus zweierlei Gründen nicht mitgeliefert. Zum einen weil eine 50 MB große Datei sich hier nicht hochladen lässt, zum anderen, wie ich geschrieben habe, der Code den ich da gepostet habe, der Code ist mit dem ich jetzt weiterarbeiten werde, zumindest bis ich mir eine Alternative für Spalte A überlegt habe. Diese wird wohl auf einem Weg geschehen, der nichts mit dieser Abfrage zu tun hat.

Der Code sollte eigentlich nur eine Info für euch sein, damit ihr wisst, zu welcher Lösung ich mich entschieden habe.
Der Tabellenname und die Bezeichnungen stammen halt aus meiner Originaltabelle und habe Case' Code halt entsprechend an die Bezeichnungen angepasst.

Gruß und auf jeden Fall vielen Dank für deine Unterstützung
Christian
Anzeige
AW: Index außerhalb des gültigen Bereichs
07.11.2024 08:50:01
daniel
Hi
der Index eines Arrays das durch Zuweisung eines Zellbereichs erstellt wird, beginnt immer bei 1.
eine Übereinstimmung von Index und Zeilennummer hast du nur dann, wenn der Zellbereich in Zeile 1 beginnt.

schleifen über Arrays macht man daher immer am besten, in dem man die LBound und UBound den Start- und Endindex abfragt
Lbound ist in der Regel 0 oder 1, hängt davon ab wie das Array erzeugt wurde.
arrData = ws.Range("A2:GN" & lastRow).Value

for i =1 to ubound(arrData, 1)


wenn du auf Excel Zeilennummern verwenden willst, muss der Zellbereich des Arrays in Zeile 1 beginnen.
arrData = ws.Range("A1:GN" & lastRow).Value

for i = 2 to lastRow


Gruß Daniel
Anzeige
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige