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

Überlauf Variant Variable bei 2. mal ausführen

Überlauf Variant Variable bei 2. mal ausführen
09.06.2018 19:36:01
Thomas
Liebe Vba Profis,
ich habe folgenden Code in Verwendung wenn ich jedoch das zweite mal ausführe funktionierte es nicht mehr.(Beim ersten mal wunderbar)
Folgende Zeile des Codes bringt beim zweiten durchlauf den fehler:
ArTab1 = .Range(.Cells(1, 2), .Cells(Rows.Count, 2).End(xlUp).Offset(0, 4))
Mein code

Sub Versuch()
'        1      2      3     4
'MNr....VAC....Anr....VNr....Z   Tabelle1
'VAC....VNr....Z                 TAbelle2
Dim dicVNR1 As New Dictionary
Dim dicZ As New Dictionary
Dim ArTab1 As Variant
Dim i As Long
Dim t
t = Timer
'Tabelle1 in ein Array
With Worksheets("Tabelle1")
ArTab1 = .Range(.Cells(1, 2), .Cells(Rows.Count, 2).End(xlUp).Offset(0, 4))
End With
Debug.Print "Eintragen Array:    " & Timer - t
'Tabelle 2 in Dictionarys
With Worksheets("Tabelle2")
For i = 1 To .Cells(Rows.Count, 1).End(xlUp).Row
dicVNR1.Add .Cells(i, 1).Value, .Cells(i, 2).Value
dicZ.Add .Cells(i, 1).Value, .Cells(i, 3).Value
Next
End With
Debug.Print "dictionarys:  " & Timer - t
'"Sverweis":
For i = 1 To UBound(ArTab1, 1)
ArTab1(i, 3) = dicVNR1.Item(ArTab1(i, 1))
ArTab1(i, 4) = dicZ.Item(ArTab1(i, 1))
Next
Debug.Print """Sverweis"" in Array:    " & Timer - t
'in Tabelle eintragen
With Worksheets("Tabelle1")
Application.ScreenUpdating = False
.Range(.Cells(1, 2), Cells(UBound(ArTab1, 1), 5)).Value = ArTab1
Application.ScreenUpdating = True
End With
Erase ArTab1
Debug.Print "Eintragen:    " & Timer - t
End Sub

Vielen Dank für Eure Hilfe

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Überlauf Variant Variable bei 2. mal ausführen
09.06.2018 20:29:19
Gerd
Hallo Thomas,
probiers mal mit vor End Sub
---.RemoveAll
Set --- = Nothing
für die Dictionaries.
Gruß Gerd
AW: Überlauf Variant Variable bei 2. mal ausführen
09.06.2018 21:24:44
Thomas
Hallo Gerhard,
habs versucht hilft leider nicht:
hab folgendes ergänzt
dicVNR1.RemoveAll
dicZ.RemoveAll
Set dicZ = Nothing
Set dicVNR1 = Nothing
Hast eventuell noch eine andere idee?
vielen dank für deinen imput
AW: Überlauf Variant Variable bei 2. mal ausführen
09.06.2018 22:02:43
Luschi
Hallo Thomas,
eine saubere Referenzierung sollte es bringen:
ArTab1 = .Range(.Cells(1, 2), .Cells(.Rows.Count, 2).End(xlUp).Offset(0, 4)).Value
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Überlauf Variant Variable bei 2. mal ausführen
10.06.2018 19:04:23
Thomas
Hallo,
leider hat beides nicht funktioniert.
Bin für jeden Vorschlag dankbar.
Beste Grüße
AW: Überlauf Variant Variable bei 2. mal ausführen
10.06.2018 19:43:13
Luschi
Hallo Thomas,
dann stell doch endlich mal eine Exceldatei bereit, damit man testen kann, was bei Dir so alles falsch läuft - denn bei mir klappt's.
Gruß von Luschi
aus klein-Paris
AW: Überlauf Variant Variable bei 2. mal ausführen
10.06.2018 21:24:23
Nepumuk
Hallo Thomas,
es liegt an der Formatierung in Spalte D. Formatiere die mal als Standard, dann klappt es auch.
Ich würde das aber so machen:
ArTab1 = .Cells(1, 2).Resize(.Cells(.Rows.Count, 2).End(xlUp).Row, 4).Value

Gruß
Nepumuk
Anzeige
AW: Überlauf Variant Variable bei 2. mal ausführen
11.06.2018 15:42:07
Thomas
Hallo,
vielen Dank
so funktioniert es einwandfrei
Wünsch noch eine schöne Woche
Beste Grüße
Thomas

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige