Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1880to1884
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

VBA Performance Set Object

VBA Performance Set Object
19.04.2022 12:46:52
Joschi
Hallo Forum,
ich habe ein Makro im Einsatz, dass mehrere tausendmal aufgerufen wird (das läßt sich nicht vermeiden). Ich sehe aber ein Performance-Problem darin, dass bei jedem dieser Aufrufe ein Object gesetzt, und am Ende wieder gelöscht wird:
Dim SSCMD5 As Object
Set SSCMD5 = CreateObject("System.Security.Cryptography.MD5CryptoServiceProvider")
...
Set SSCMD5 = Nothing
Wie groß ist der Aufwand für diese beiden Befehle, und wie könnte ich das Problem anders lösen (Globale Variable?)
Wer hat gute Vorschläge, oder mache ich mir unnötig Sorgen?
Gruß Joschi

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Performance Set Object
19.04.2022 13:22:33
GerdL
Moin Joschi,
probier halt mal, ob es etwas bringt.
'Modul1 '(allgem. Modul)
Public SSCMD5 As Object
'Modul DieseArbeitsmappe

Private Sub Workbook_Open()
Set SSCMD5 = CreateObject("System.Security.Cryptography.MD5CryptoServiceProvider")
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Set SSCMD5 = Nothing
End Sub
Gruß Gerd
AW: VBA Performance Set Object
19.04.2022 13:38:51
Joschi
Hallo Gerd,
der Test von Nepumuk hat mich überzeugt. Trotzdem: Danke für Deine Antwort.
Gruß Joschi
AW: VBA Performance Set Object
19.04.2022 16:19:08
snb
Du brauchst gar kein Object Variabele.

Sub M_snb()
with CreateObject("System.Security.Cryptography.MD5CryptoServiceProvider")
for j=1 to 10^3
msgbox .number
next
end with
End Sub

Anzeige
AW: VBA Performance Set Object
19.04.2022 13:26:06
Nepumuk
Hallo Joschi,
so getestet:

Public Sub Test()
Dim SSCMD5 As Object
Dim lngIndex As Long
Dim sngTimer As Single
sngTimer = Timer
For lngIndex = 1 To 10000
Set SSCMD5 = CreateObject("System.Security.Cryptography.MD5CryptoServiceProvider")
Set SSCMD5 = Nothing
Next
Debug.Print Timer - sngTimer
End Sub
dauern die 10.000 Set und Delete grade mal 0,5 Sekunden.
Gruß
Nepumuk
AW: VBA Performance Set Object
19.04.2022 13:36:56
Joschi
Hallo Nepumuk,
Danke für Deine Antwort. Mit den von Dir ermittelten Daten kann ich wohl meine Bedenken fallen lassen.
Gruß Joschi

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige