Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1680to1684
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

Probleme mit Array; Laufzeitfehler 13

Probleme mit Array; Laufzeitfehler 13
24.03.2019 07:38:43
Werner
Hallo Forums-Mitglieder,
ich habe ein kleines Problem:
Zuerst definiere ich eine Variable:
Dim Exlist As Variant
Dann fülle ich dieser Variable:

Exlist = Range(Cells(1, 1), Cells(MaxRow, 1))

wobei MaxRow die Anzahl der vorhandenen Zeilen enthält.
Die Routine läuft schon längere Zeit fehlerfrei, Doch jetzt ist sie erstmals mit "Laufzeitfehler 13" abgebrochen. Die Ursache ist mir klar: MaxRow steht auf 1; es gibt nur eine Zeile zu kopieren. Vermutlich wird dadurch keine Array entstehen.
Um das Problem zu lösen, habe ich vor dem Füllen folgenden Befehl eingebaut:
If MaxRow = 1 Then ReDim Preserve Exlist(1)
Doch auch diese Zeile erzeugt den Laufzeitfehler 13.
Wie kann ich das Problem lösen, ohne die Weiterverarbeitung der Exlist zu verändern?
Gruß
Werner

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Probleme mit Array; Laufzeitfehler 13
24.03.2019 07:42:19
Hajo_Zi
Hallo Werner,
muss voe Exlist nicht ein Set, da Du einen Bereich zuweisen willlst.
Eine hochgeladene Arbeitsmappe erhöht die Wahrscheinlichkeit, dass Du eine Lösung für Dein Problem erhältst.
Erstelle folglich bitte eine Demomappe, aus der deine Aufgabenstellung klar erkennbar ist und lade diese hoch.
Wenn du an Stelle einer Demomappe deine Originalmappe hochladen willst, diese aber sensible Daten enthält, solltest du diese Daten anonymisieren bzw. pseudonymisieren.
Falls Du den Download des Forums nicht benutzen möchtest beachte bitte: von unsicheren Servern file-upload lade ich keine Datei herunter (lt. Einschätzung meines Virenprogramms)

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Die Beiträge werden auch ignoriert, es erfolgt keine Antwort.
Anzeige
AW: Probleme mit Array; Laufzeitfehler 13
24.03.2019 08:16:19
Werner
Hallo Hajo und "danke" für Deine Antwort.
Das mit dem "Set" scheint unlogisch, weil das Problem nicht auftritt, wenn mehr als eine Zeile vorhanden ist.
Hier ist mein kleiner Testcode:
Sub lzf13()
Dim ExList As Variant
Dim MaxRow As Long
Dim Loop1  As Long
MaxRow = 2
ExList = Range(Cells(1, 1), Cells(MaxRow, 1))
Debug.Print UBound(ExList)
For Loop1 = 1 To UBound(ExList)
Debug.Print "Durchlauf 1 " & ExList(Loop1, 1)
Next
MaxRow = 1
ExList = Range(Cells(1, 1), Cells(MaxRow, 1))
Debug.Print UBound(ExList)
For Loop1 = 1 To UBound(ExList)
Debug.Print "Durchlauf 2 " & ExList(Loop1, 1)
Next
End Sub
In der aktiven Tabelle sollten in den Zeilen 1 und 2, jeweils Spalte 1 zwei unterschiedliche Begriffe stehen.
Der Laufzeitfehler 13 tritt bei "Debug.Print UBound(ExList)" im 2. Durchlauf auf.
Gruß
Werner
Anzeige
AW: Probleme mit Array; Laufzeitfehler 13
24.03.2019 07:53:28
Sepp
Hallo Werner,
If MaxRow = 1 Then ReDim Exlist(1 to 1, 1 to 1): Exlist(1, 1) = Cells(1, 1)

 ABCDEF
1Gruß Sepp
2
3

Anzeige
AW: Probleme mit Array; Laufzeitfehler 13
24.03.2019 08:22:22
Werner
Hallo Sepp,
herzlichen Dank. Ich habe Deinen Vorschlag in mein Test-Programm eingebaut, und das Problem ist behoben.
Hier mein neuer Code:
Sub lzf13()
Dim ExList As Variant
Dim MaxRow As Long
Dim Loop1  As Long
MaxRow = 2
ExList = Range(Cells(1, 1), Cells(MaxRow, 1))
Debug.Print UBound(ExList)
For Loop1 = 1 To UBound(ExList)
Debug.Print "Durchlauf 1 " & ExList(Loop1, 1)
Next
MaxRow = 1
If MaxRow = 1 Then
ReDim ExList(1 To 1, 1 To 1)
ExList(1, 1) = Cells(1, 1)
Else
ExList = Range(Cells(1, 1), Cells(MaxRow, 1))
End If
Debug.Print UBound(ExList)
For Loop1 = 1 To UBound(ExList)
Debug.Print "Durchlauf 2 " & ExList(Loop1, 1)
Next
End Sub
Gruß
Werner
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige