SW2016 Makro na W7 i W10

Witam

Napisałem makro (pobierając bity tu i tam) w celu wykonania eksportu wsadowego. Jednak makro wywołuje shell32.dll (w celu wyboru folderu). Na moim komputerze nie ma problemu z włączoną "Shell and Automation", ale dla mojego kolegi pokazuje błąd w tym wierszu: "Set SH = New Shell32.Shell". 

 

Błąd: Klasa nie obsługuje automatyzacji ani oczekiwanego interfejsu.

Ja jestem na W7, on na W10, oba w 64bit. Czy ktoś spotkał się z tym samym problemem?

Z góry dzięki,

 

Czy możesz pokazać swój kod.

Witam

Spójrz w tę stronę: TUTAJ

Pozdrowienia

1 polubienie

Fragment kodu, który ulega awarii:

Funkcja BrowseFolder(opcjonalny podpis jako ciąg, _
    Opcjonalny InitialFolder As String) Jako Ciąg

Dim SH As Shell32.Shell
Dim F As Shell32.Folder
Ustaw SH = New Shell32.Shell
Ustaw F = SH. BrowseForFolder(0&; Podpis, BIF_RETURNONLYFSDIRS, Folder_początkowy)
Jeśli nie, F jest niczym, to
    BrowseFolder = F.Items.Item.Path
Zakończ jeżeli:

Zakończ funkcję

 

 

Jeśli dobrze zrozumiałem, muszę tylko dodać 2 linijki:

Dim obj as obiekt

Ustaw Obj = CreateObject("Shell.Application")

 

 Aby to zrobić?

 

Funkcja BrowseFolder(opcjonalny podpis jako ciąg, _
    Opcjonalny InitialFolder As String) Jako Ciąg

Dim SH As Shell32.Shell
Dim F As Shell32.Folder
Dim ShellApp jako obiekt
Ustaw ShellApp = CreateObject("Shell.Application")
Ustaw SH = New Shell32.Shell
Ustaw F = SH. BrowseForFolder(0&; Podpis, BIF_RETURNONLYFSDIRS, Folder_początkowy)
Jeśli nie, F jest niczym, to
    BrowseFolder = F.Items.Item.Path
Zakończ jeżeli:

Zakończ funkcję

Otóż nie, to tak, jakbyś nic nie zrobił. Deklarujesz obiekt ShellApp jako nowy obiekt Shell.Application, ale nadal używasz swojego SH obiektu.

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

 

Pozdrowienia

1 polubienie

Ach, po modyfikacji makro powoduje teraz awarię solidworks. Jakiś pomysł?

W czasie dla mnie, problem rozwiązany, dziękuję