Jak odzyskać monety za pomocą makra

Witam, chciałbym mieć możliwość odzyskania dokumentu z dokumentu, w tym celu stworzyłem swój program, który działa, ale teraz chciałbym mieć możliwość pobrania innego dokumentu o innej nazwie w tym samym dokumencie. Należy zauważyć, że w tym dokumencie zawsze będzie tylko jedna sztuka. Czy możliwe jest posiadanie makra, które pobiera wszystkie fragmenty tego samego dokumentu?

Na przykład:  boolstatus = swApp.LoadFile2("C:\Users\Desktop\new folder\ (all or filename)", "")

Witam

Czy możesz udostępnić swoje bieżące makro?

Nie martw się:


macro_ouverture_dossier.swp

Czy możesz wyjaśnić, co chcesz zrobić? Myślałem, że makro pozwoli mi zrozumieć, co masz na myśli mówiąc "zdobądź jedną monetę" i "weź wszystkie monety", ale tak nie jest.

Ponadto makro używa "SelectByRay", który jest nieco losowy

Jeśli próbujesz wybrać krawędzie, lepiej zrobić to za pomocą GetBodies2 , następnie GetFirstFace / GetNextFace , a następnie GetEdges

 

Bardzo dziękuję za odpowiedź. Jestem nowicjuszem w tej dziedzinie, więc brakuje mi kilku pojęć, więc bardzo dziękuję :). 

Tak naprawdę chciałbym, aby oprogramowanie automatycznie tworzyło oprzyrządowanie w stosunku do części w pliku, wyobraźmy sobie, że mam część A i część B. Jeśli utworzę makro z częścią A jako podstawą, to działa, ale teraz, jeśli usunę część A z folderu i zastąpię ją B, to już nie działa, ponieważ nie mają tej samej nazwy. Czy istnieje sposób na przezwyciężenie tego problemu?

Plik można wybrać za pomocą okna dialogowego:

' cliquer dans le menu de la fenêtre VBA: Tools > References > sélectionner: "microsoft Excel xx.0 object library"
Sub main()
    Dim xlsObject As Excel.Application
    Dim fdFolder As Office.FileDialog

    Set xlsObject = New Excel.Application
    xlsObject.Visible = False
    Set fdFolder = xlsObject.Application.FileDialog(msoFileDialogFilePicker)
       fdFolder.Filters.Clear
    fdFolder.Filters.Add "SolidWorks Files", "*.sld*"
    fdFolder.Show
    Debug.Print "fichier sélectionné: " & fdFolder.SelectedItems(1)
    xlsObject.Quit
    Set xlsObject = Nothing
End Sub

Możesz też przeglądać wszystkie pliki w folderze za pomocą:

Sub main()
Dim oFSO As Object
Dim oFolder As Object
Dim oFile As Object
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFolder = oFSO.GetFolder("C:\Users\...")
For Each oFile In oFolder.Files
    Debug.Print oFile.Name
Next oFile
End Sub

 

Witam

Jeśli, jak wspomniano powyżej, nadal masz tylko jeden plik w danym folderze, możesz pobrać jego nazwę za pomocą funkcji DIR:

    Dim Dossier As String
    Dossier = "C:\Temp\divers\" 'Ligne à modifier pour mettre le nom de ton dossier
    Dim Fichier As String
    Fichier = Dir(Dossier)
    Debug.Print Dossier & Fichier
    boolstatus = swApp.LoadFile2(Dossier & Fichier, "")

 

Pozdrowienia

Bardzo dziękuję za odpowiedzi, przetestuję to. 

Należy jednak zachować ostrożność przy typie pliku, który chcesz otworzyć, należy użyć funkcji LoadFile2 (należy wziąć LoadFile4 na aktualność), która jest przeznaczona dla nienatywnych plików Solidworks, jeśli jest to plik natywny Solidworks, musisz użyć funkcji OpenDoc6 i dlatego sprawdzić typ pliku (asm, PRT lub DRW).

Pozdrowienia

1 polubienie

To działa, dziękuję.

OK, wszystko, co musisz zrobić, to zweryfikować odpowiedź, która rozwiązała Twoje pytanie...

Pozdrowienia