Das Clever-Excel-Forum.de - Treffen
findet vom 15. - 17. September 2017 in Thüringen / Region Großer Inselsberg statt. Hotelbuchung ab sofort möglich.


Drehfunktion des Spalteninhaltes optimieren
#1
Hallo Leute,
ich habe ein kleines funktionsfähiges Programm geschrieben, welches die in einer Spalte (hier: Spalte A) stehenden Werte in deren Reihenfolge umdreht. Gleichzeitig habe ich eine Makrorekorderaufzeichnung über die eingebaute Excel-Funktion Sortieren A-Z bzw. Z-A gemacht. Auch wenn Excel nicht direkt über meine geschriebene Funktion Drehen verfügt, ist der Sortieralgorithmus von MS doch wesentlich schneller. Und genau das ist meine Frage: Wie muss mein VBA Code verbessert werden, damit das Drehen schneller abläuft?


Code:
Private Declare PtrSafe Function GetTime Lib "winmm.dll" Alias "timeGetTime" () As Long

Sub Drehen()
Dim vbx As Long, vbT1 As Long
Dim letzteZeile As Long, vbgr As Long
Dim tmp As Variant

vbT1 = GetTime
letzteZeile = Range("A" & Rows.Count).End(xlUp).Row
vbgr = letzteZeile
vbx = Round(letzteZeile / 2, 0.5)
Var = Range("A1:A" & letzteZeile).Value

For i = 1 To vbx
tmp = Var(i, 1)
Var(i, 1) = Var(letzteZeile, 1)
Var(letzteZeile, 1) = tmp
letzteZeile = letzteZeile - 1
Next i
Range("A1:A" & vbgr).Value = Var[b][/b]
End Sub

'Makrorekorderaufzeichnung von MS:
Sub Makro1()
Dim vbT1 As Long
vbT1 = GetTime
    Columns("A:A").Select
    ActiveWorkbook.Worksheets("Tabelle2").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Tabelle2").Sort.SortFields.Add Key:=Range("A1"), _
        SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Tabelle2").Sort
        .SetRange Columns("A:A")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
MsgBox GetTime - vbT1
End Sub
to top
#2
Hallo Kathrin

in meinem Test mit 15000 Zeilen benötigt Dein Makro "Drehen" 0,04 Sekunden
und Dein "Makro1" brauchte 0,4 Sekunden

MfG Tom
to top


Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Dropdownliste mit Suchfunktion optimieren Energizer123 6 126 21.10.2016, 12:56
Letzter Beitrag: Energizer123
  Summe optimieren Kollege_Kuno 21 1.222 17.03.2016, 19:08
Letzter Beitrag: Kollege_Kuno
  Excel VBA-Code optimieren flado 3 1.288 08.10.2014, 20:44
Letzter Beitrag: Steffl
  Code optimieren und zusätze einfügen michel34497 19 2.926 02.07.2014, 22:32
Letzter Beitrag: michel34497

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste