Zmodyfikowałem zmienną w SWmoddoc.SaveAs(PathFileNamePDF), umieściłem pełny adres z plikiem, to nie zadziałało, po prostu umieściłem nazwę pliku pdf i tworzy go dla mnie w tym samym folderze co slddrw, i coś innego, jeśli folder, w którym chcę zapisać pdf, już istnieje, Ten błąd, czy ktoś może mi pomóc zrozumieć, oto tekst mojego makra.
sans_titre.png
Witam
Myślę, że błąd pochodzi ze zmiennej "PathPDFfileName" w tym poleceniu:
nErrors = SWmoddoc.SaveAs(FileNamePathPDF)
Kiedy zapisujesz za pomocą polecenia "Zapisz jako", musisz podać pełną nazwę pliku jako argument, Z rozszerzeniem (.pdf w Twoim przypadku).
Pozdrowienia.
Franck.
Widziałem to po Lucasie, zmodyfikowałem to, ale nadal nie działa.
Fgirard , też to widziałem, zmodyfikowałem, ale nadal nie działa do końca.
pl
15 Lipiec 2014 12:22
13
Aby zapoznać się z punktami przerwania, spójrz na link, który umieściłem powyżej:
http://www.tomshardware.fr/forum/id-1348092/tutoriel-excel-macro-vba-debogage.html
Wyjaśniono kilka sposobów debugowania kodu, w tym punkty przerwania.
1 polubienie
pl
15 Lipiec 2014 12:26
14
Jeśli to nadal nie zadziała, dodaj szpiegów, jak pokazano poniżej:
http://www.tomshardware.fr/forum/id-1348092/tutoriel-excel-macro-vba-debogage.html
A jakie są wartości zmiennych:
NazwaPlikPDF
PlikNazwa_ścieżkiPDF
Gdzie kończy się Twoje makro?
1 polubienie
Ponownie
Aby przetestować > makra w edytorze równań, kliknij "Widok", "Okno zmiennej lokalnej" > zobacz załącznik
editeur_de_macro_fenetre_variables_locales.png
2 polubienia
Nasze posty się przecinają, przepraszamy.
Dziwne jest, że "Zapisz jako" nie działa poprawnie z pełną nazwą pliku (ścieżka+nazwa+rozszerzenie).
To samo dotyczy błędu z folderem, który już istnieje.
Spróbuj użyć polecenia "Zapisz jako" dla ModelDocExtension. To jest ten, którego używam w moich makrach.
Oto jak to zgłosić:
Dim SWmodext jako SldWorks.ModelDocExtension
Dim swExportPDFData As SldWorks.ExportPdfData
Błędy przyciemnienia tak długo Ostrzeżenia o przyciemnieniu tak długo
i jak to wpłynąć:
Ustaw SWmodext = SWmoddoc.Extension
wtedy:
nErrors = SWmodext.SaveAs(FileNamePathPDF, 0, 0, swExportPDFData, Błędy, Ostrzeżenia)
Do zarządzania folderami używam FileSystemObject:
Dim oFSO As Scripting.FileSystemObject Dim oFld As Folder (Folder przyćmij jako folder)
Set oFSO = New Scripting.FileSystemObject
Jeśli oFSO.FolderExists(FileNamePathPDF) = False, to Set oFld = oFSO.CreateFolder(FileNamePathPDF) Zakończ jeżeli:
2 polubienia
Dziękuję caronmaxime , bardzo przydatne to okno!
Tak więc w twoim oknie moje zmienne mają wartość, którą chcę im nadać, ale nie działa to tak, jak chcę.
utworzy dla mnie plik 2014, z drugiej strony, jeśli plik już istnieje, zatrzymuje się na linii Mkdir (1. punkt, którego nie rozumiem)
i tworzy dla mnie plik pdf, ale z drugiej strony w tym samym folderze co aktywny plik, kiedy powinien go umieścić w folderze 2014 (2. punkt, którego nie rozumiem)
POMOC!!
1 polubienie
pl
15 Lipiec 2014 12:54
18
Czy błąd nie wynikałby z faktu, że testujesz folder i tworzysz inny?
Jeśli Dir$(FileNamePathPDF) = "" Następnie MkDir NazwaPlikuPDF
Zakończ się, jeśli
PathFileNamePDF czy powinien być tutaj użyty 2 razy, prawda? Raz dla testu Dir$ i raz dla MkDir?
3 polubienia
re re re
Mathieu, moim zdaniem twój [ MkDir FileNamePDF] powinien zostać zastąpiony przez [ MkDir FileNamePathPDF]
W edytorze makr możesz kliknąć dwukrotnie słowo kluczowe MkDir, aby je zaznaczyć, a następnie nacisnąć F1. Pomoc pozwoli ci zrozumieć.
Z drugiej strony, w Kościele
dokonać podsumowania, biorąc pod uwagę doskonałe rekomendacje Fgirarda, a może spojrzeć na pytanie "moje makro PDF DXF, co powiedzieć? ", który opublikowałem.
W przeciwnym razie postępuję w ten sposób (patrz załącznik) debugowanie makra, gdy tworzy ono foldery lub pliki
capture_decran_sw_et_editeur_sw_et_explorer_windows.png
Wprowadziłem zmiany, ale nadal działa tak samo, a kiedy uruchamiam go ponownie tutaj lub działa błędy!
sans_titre.png
pl
15 Lipiec 2014 13:47
22
Ach, myślę, że to dlatego, że nie masz ukośnika odwrotnego na końcu swojej ścieżki!!
Aby to sprawdzić, dodaj to:
Jeśli right(FileNamePathPDF,1) = "\" to
FileNamePathPDF = FileNamePathPDF & "\"
Zakończ się, jeśli
Musisz umieścić go przed swoją linią:
Jeśli Dir$(FileNamePathPDF) = "" Następnie
1 polubienie
Nie, lucas, to jest to samo, nie zrobiłem tego tak, jak powiedziałeś, zrobiłem to w ten sposób.
FileNamePathPDF = "C:\GNIEW\pdf\" & FileNamePDF & "\"
Ale to niczego nie zmienia.
Z drugiej strony, jak to działa?
nErrors = SWmoddoc.SaveAs(NazwaPlikuPDF) NazwaPlikuPDF=045/1-2014-A
Co powinniśmy mieć w nawiasach?
Nie znajduję go i tak naprawdę nie rozumiem, co jest w internecie.
pl
15 Lipiec 2014 14:00
24
Jak wspomniano powyżej, zmienna PDFFileName musi zawierać rozszerzenie pliku!
Tak więc dla you.pdf
A może ścieżka też?
Wypróbuj jedno i drugie.
Obecnie nie mam możliwości przetestowania tego.
1 polubienie
Próbowałem 2, wiedząc, że zmienna "FileNamePDF" ma pierwotnie rozszerzenie, ale pozostaje takie samo, zapisuje je w folderze, w którym plik jest aktywny.
pl
15 Lipiec 2014 14:33
26
Więc nie próbowałeś dołączyć ścieżki docelowej (miejsca, w którym chcesz ją zapisać) w FileNamePDF?
Ponieważ opcja "zapisz jako" bez ścieżki zapisuje ją w folderze, w którym znajduje się oryginalna część!
1 polubienie
pl
15 Lipiec 2014 14:34
27
Będzie to:
nErrors = SWmoddoc.SaveAs(FileNamePathPDF & FileNamePDF)
Upewniając się, że między 2 znajduje się odwrotny ukośnik (w pierwszej zmiennej lub drugiej, nie ma to znaczenia).
1 polubienie
pl
15 Lipiec 2014 14:36
28
A w mojej wiadomości z 15:47 chodziło o utworzenie folderu, a nie o zapisanie PDF-a:
Łukasz P
lipiec 15, 2014 - 03:47 PM
Ach, myślę, że to dlatego, że nie masz ukośnika odwrotnego na końcu swojej ścieżki!!
Aby to sprawdzić, dodaj to:
Jeśli right(FileNamePathPDF,1) = "\" to
FileNamePathPDF = FileNamePathPDF & "\"
Zakończ się, jeśli
Musisz umieścić go przed swoją linią:
Jeśli Dir$(FileNamePathPDF) = "" Następnie
1 polubienie