Ich möchte meine PERSONAL.XLSB UDFs registrieren, sobald ich eine neue Arbeitsmappe öffne. Ich habe eine Workbook_Open()
Veranstaltung rufen Sie das folgende:PERSONAL.XLSB MacroOptions beim Start
Sub RegisterUDF()
Dim s As String
s = "Enter 0 for x resolution" & vbLf _
& "1 for y resolution"
Application.MacroOptions Macro:="GetSystemMetrics", Description:=s, Category:=9, HelpFile:="https://msdn.microsoft.com/en-us/library/windows/desktop/ms724385(v=vs.85).aspx"
End Sub
wo GetSystemMetrics
meine UDF ist und der Code wird in dem Arbeitsobjekt und ein Modul meiner Personal.xlsb platziert
Auf eine neue Arbeitsmappe zu öffnen, etwas erscheint Ich bekomme die Fehlermeldung:
Wie soll ich meinen Code beheben, um die UDF bei jeder neuen Arbeitsmappe zu registrieren?
Nice one. Nur eine Nebenfrage. Warum 2 Sekunden? Wann immer ich in meinem Skript die Wartezeit fest codieren muss, habe ich diese Frage. Nicht speziell für diesen, sondern zum Beispiel Shell aufrufen. Abgesehen von 'Do Until' muss ich manchmal etwas warten. Hast du irgendeine Methode oder etwas dafür? – Masoud
@Masoud Nur zufällig 2 Sekunden, weil die meisten Male 2 Sekunden genug Zeit sind, um andere Aktionen zu beenden. Viele Aktionen benötigen nur ein paar Millisekunden, aber es kann immer noch sein, dass 2 Sekunden nicht genug sind, also müssen Sie dies auf Ihrem Setup testen, da dies auch von der Leistung Ihres Systems abhängt. Wir müssen daran denken, dass dies immer noch nur ein Workaround ist, weil Excel uns hasst. –