SW2016 Makro auf W7 und W10

Hallo

Ich habe ein Makro geschrieben (hier und da Bits abrufen), um einen Batch-Export durchzuführen. Das Makro ruft jedoch shell32.dll (für die Ordnerauswahl) auf. Auf meinem Computer gibt es kein Problem, wenn "Shell und Automatisierung" aktiviert ist, aber für meinen Kollegen wird in dieser Zeile ein Fehler angezeigt: "Set SH = New Shell32.Shell". 

 

Fehler: Die Klasse unterstützt weder die Automatisierung noch die erwartete Schnittstelle.

Ich bin auf W7, er auf W10, beide in 64bit. Hat jemand das gleiche Problem gehabt?

Danke im Voraus,

 

Können Sie Ihren Code zeigen?

Hallo

Schauen Sie hier hin: HIER

Herzliche Grüße

1 „Gefällt mir“

Der Codeausschnitt, der abstürzt:

Funktion BrowseFolder(Optionale Beschriftung als Zeichenfolge, _
    Optional InitialFolder als Zeichenfolge) als Zeichenfolge

Dim SH As Shell32.Shell
Dim F As Shell32.Folder
Set SH = Neue Shell32.Shell
Setze F = SH. BrowseForFolder(0&, Caption, BIF_RETURNONLYFSDIRS, InitialFolder)
Wenn nicht, ist F nichts, dann
    BrowseFolder = F.Items.Item.Path
Ende, wenn

Ende-Funktion

 

 

Wenn ich es richtig verstanden habe, muss ich nur noch 2 Zeilen hinzufügen:

Dim obj als Objekt

Set Obj = CreateObject("Shell.Application")

 

 um dies zu tun?

 

Funktion BrowseFolder(Optionale Beschriftung als Zeichenfolge, _
    Optional InitialFolder als Zeichenfolge) als Zeichenfolge

Dim SH As Shell32.Shell
Dim F As Shell32.Folder
ShellApp als Objekt dimmen
Set ShellApp = CreateObject("Shell.Application")
Set SH = Neue Shell32.Shell
Setze F = SH. BrowseForFolder(0&, Caption, BIF_RETURNONLYFSDIRS, InitialFolder)
Wenn nicht, ist F nichts, dann
    BrowseFolder = F.Items.Item.Path
Ende, wenn

Ende-Funktion

Nun, nein, es ist, als ob du nichts getan hättest. Sie deklarieren ein ShellApp-Objekt als neues Shell.Application-Objekt, verwenden das SH-Objekt jedoch weiterhin.

Dim Folder As Object
Dim F As Folder
Dim ShellApp As Object
Set ShellApp = CreateObject("Shell.Application")
Set F = ShellApp.BrowseForFolder(0&, Caption, BIF_RETURNONLYFSDIRS, InitialFolder)
If Not F Is Nothing Then
    BrowseFolder = F.Items.Item.Path
End If

 

Herzliche Grüße

1 „Gefällt mir“

Ah, nach der Modifikation stürzt das Makro jetzt in SolidWorks ab. Irgendeine Idee?

Rechtzeitig für mich, Problem gelöst, danke