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?
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
OK, wszystko, co musisz zrobić, to zweryfikować odpowiedź, która rozwiązała Twoje pytanie...
Pozdrowienia