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

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

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

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige