Was geht schneller? Mit Array o. Offset
06.04.2020 14:53:16
Andreas
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