Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Was geht schneller? Mit Array o. Offset

Forumthread: Was geht schneller? Mit Array o. Offset

Was geht schneller? Mit Array o. Offset
06.04.2020 14:53:16
Andreas
Was geht schneller ? Mit Array oder Offset
Hallo .. ich nutze folgende Möglichkeiten um Werte aus einem Tabellenblatt in eine andere zu übertragen.
Nun meine Frage ... welche Methode kann schneller verarbeitet werden.
Teilweise werden 100 Werte übertragen.

GeraeteNummer = Range("Geraetenummer")
GeraeteArt = Range("GeraeteArt")
' usw.
With wksWerte
GeraetMax = Application.WorksheetFunction.max(.Range("A:A")) + 1
Set c = .Range("A:A").Find(What:=GeraeteNummer, LookIn:=xlValues, LookAt:=xlWhole)
If c Is Nothing Then
Select Case MsgBox("Die angegebene Nummer konnte nicht gefunden werden:" ,  _
vbQuestion + vbYesNoCancel)
Case vbCancel
Exit Sub
Case vbYes
End Select
Set c = .Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0)
End If
c.Resize(1, 7).Value = Array(GeraeteNummer, GeraeteArt, Marke, Model, GeraeteTyp,  _
GeraeteNr, Garantie)
End With


Set c = X.Find(GeraeteNummer, LookIn:=xlValues, LookAt:=xlWhole, _
SearchDirection:=xlNext, MatchCase:=False)
If c Is Nothing Then Set c = _
wksAuftrag.Cells(wksAuftrag.Rows.Count, 1).End(xlUp).Offset(1, 0)
c = GeraeteNummer
c.Offset(0, 1) = Range("GeraeteArt")
c.Offset(0, 2) = Range("Marke")
c.Offset(0, 3) = Range("Model")
c.Offset(0, 4) = Range("GeraeteTyp")
' usw.
Vielen Dank
Andreas
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Was geht schneller? Mit Array o. Offset
06.04.2020 15:14:21
Daniel
Hi
Sowas kann man leicht selber testen, in dem man die Laufzeit misst.
Das geht so
dim T as double
T = Timer
... Hier der zu testende Code
MsgBox Timer - T
Ansonsten, was ist schneller:
a) du gehst 10x zum Bäcker und kaufst jeweils 1 Brötchen
b) du gehst 1x zum Bäcker und kaufst 10 Brötchen
Jedes Ändern eines Zellwertes löst in Excel eine Reihe von Aktivitäten im Hintergrund aus, die Zeit brauchen.
Ändert man mehrere Zellen gleichzeitig, dann können diese Aktivitäten für alle Zellen gemeinsam ausgeführt werden.
Range("A1") = 1 erzeugt für Excel den gleichen Aufwand wie Range("A1:A1000") = 1
Gruß Daniel
Anzeige
AW: Was geht schneller? Mit Array o. Offset
06.04.2020 15:14:34
Nepumuk
Hallo Andreas,
ich benutze in so einem Fall immer die Array-Funktion. Die sollte schneller sein, wenn auch nur um ein paar Millisekunden.
Gruß
Nepumuk
;

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