Eindimensionales Array mit Range("A1:B40000") bild
Peter
In den Spalten A und B sind je 40.000 Werte und ich möchte die Unikate in Spalte D ausweisen.
Wie bekomme ich den Range("A1:B40000") in ein eindimensionales Array eingelesen.
Bisher kopiere ich die Spalten untereinander (bis 65536 Zeilen) und lese die Werte dann ein...
aber bei je 40.000 geht das mit Excel 2003 nicht mehr.
Siehe mein Codebeispiel und Dateianhang.
Public Sub Unikate_mit_Dictionary()
Dim objDic As Object
Dim vIn, vIn1, vIn2, vOut
Dim i As Long, T As Double
T = Timer
With Tabelle1
.Range("D:D").ClearContents
vIn1 = .Range(.Cells(1, 1), .Cells(40000, 1)).Value
vIn2 = .Range(.Cells(1, 2), .Cells(40000, 2)).Value
End With
vIn = vIn1
'und hier meine Frage: Wie verbinde ich vIn = vIn1 + vIn2
'da ich in Excel 2003 keine 80.000 Zeilen habe hilft untereinander kopieren nicht
Set objDic = CreateObject("Scripting.Dictionary")
For i = LBound(vIn) To UBound(vIn)
objDic(CStr(vIn(i, 1))) = 0
Next
vOut = objDic.keys
With ThisWorkbook.ActiveSheet
.Range("D2").Resize(UBound(vOut) + 1) = WorksheetFunction.Transpose(vOut)
.Range("D1") = Timer - T
End With
Set objDic = Nothing
End Sub
https://www.herber.de/bbs/user/69605.xls
Gruß Peter