PDA

Vollständige Version anzeigen : Abfrage dauert zu lange


MH-AT
01.09.2017, 08:54
Hallo, habe ein kleines Problem.
Habe eine Excel Basis von 14 Spalten und 32000 Zeilen.
Ich will, die Spalte A und die Spalte N miteinander Verknüpfen. Will aber die Datei nicht unnötig aufblähen (=VERKETTEN(N5&A5)).
********************************************
Sub Test()
Application.ScreenUpdating = False

Dim Tabelle_ZISSE As String
Tabelle_ZISSE = "ZISSE045"
Dim Tabelle_MB5L As String
Tabelle_MB5L = "MB5L"

Dim n
For n = 1 To Cells(Rows.Count, 1).End(xlUp).Row
Cells(n, 3).Value = Cells(n, 1).Value & Cells(n, 14).Value
Next

End Sub
********************************************
habe auch versucht über VBA diese zu lösen. Aber das dauert echt sehr sehr
lange. Hat ev. wer für mich einen Tip wie ich das ganz schnell hin bekomme?

Bitte um Hilfe!
Danke

lg HM

Fennek11
01.09.2017, 09:09
Hallo,

"freihändig" formuliert, könnte das so ähnlich werden wie


Sub mitArray()
Ar = cells(1).currentregion
for i = 2 to ubound(Ar)
Ar(i,3) = Ar(i,1) & Ar(1,14)
next i
cells(1,1).resize(ubound(Ar), ubound(Ar,2)) = Ar
end sub


Frohes debuggen!

mfg

MH-AT
01.09.2017, 09:45
Hallo Fennek11, super es hat geklappt Danke
lg MH

MH-AT
01.09.2017, 12:06
Sorry, kämpfe leider noch immer mit meinem Problem. Jetzt überschreibt mit der VBA Code alle Formeln mit den Werten. ich will nur dass die Ergebnisse in der Spalte X ausgegeben wird
******************
Dim Ausgabe As Variant

Worksheets(Tabelle_MB5L).Activate
ar = Cells(1).CurrentRegion

For i = 5 To UBound(ar)
ar(i, 13) = ar(i, 4) & ar(i, 5)
Next i

Worksheets(Tabelle_MB5L).Range("M5:M32000").Resize(UBound(ar), 1) = Ausgabe

Fennek11
01.09.2017, 19:50
Hallo,

wenn nur eine Spalte zurückgeschrieben werden soll, geht das so (im Beispiel aus dem Array Ar Reihe 3 nach Spalte C (=3)


Re = application.index(Ar,0,3)
cells(1,3).resize(ubound(Re), ubound(Re,2)) = Re


mfg