Jak zamknąć pokój, który nie jest jeszcze zarejestrowany

Witam

 

Chciałbym wykonać:

Aktywny skoroszyt.Zamknij

 

tak jak robimy to w przypadku Excela!

 

 

Kod rejestracyjny makra podaje:

 

Ustaw swApp = Application.SldWorks

 

Ustaw część = swApp.ActiveDoc

Ustaw część = Nic

swApp.CloseDoc "Nazwa części"

 

Z tym, że nie zarejestrowała go nie ma określonej nazwy (z wyjątkiem "Dowód 1", Dowód 2", Dowód 3"......)

 

Z:

swApp.ActiveDoc.Close Uległem awarii solidworks (obraz w załączeniu)

 

 

Dziękuję za pomoc!!


capture.png

Dlaczego po prostu nie kliknąć na zamknięcie ^^^lub na krzyżyk.....

 

Nie sądzę, aby makro było konieczne do tego rodzaju manipulacji.

4 polubienia

Cóż, to tak, jakby otworzyć plik, zaimportować części do zespołu lub zmienić materiał...

 

Możesz to zrobić ręcznie, ale jeśli program to zrobi, nie musisz już tego robić.

 

Nie mogłem znaleźć tej instrukcji nigdzie na forach...

Naprawdę nie widzę sensu w zamykaniu pliku bez jego zapisania 

W rezultacie może zostać utracony w innych plikach bez możliwości łatwego odnalezienia

Zamknij Nie oszczędzając tracimy wszystko?

@+ ;-)

 

2 polubienia

Zgadzam się z Bartkiem i Gt22

Ale jeśli w twoim kontekście ma to sens... zamiast tego spójrz na metodę QuitDoc (ISldWorks) . 

który zamyka się bez zapisywania

 

 

6 polubień

W tym samym czasie kliknij ikonę makra lub kliknij krzyżyk, aby zamknąć.

 

W sumie sprowadza się to do tego samego, prawda?

 

Albo coś mi umknęło...

 

 

W rzeczywistości tak:

 

longstatus = Część.Zapisz As3(link, 0, 2)

 

który zapisuje moją część w łączu , z wyjątkiem tego, że zachowuję część (kopię), która nie jest zapisana w moim Solidworks, co jest bezużyteczne.

 

To prawda, że źródłowy problem polega na tym, czy można zapisać otwarty pokój i zachować go na widoku? (przez VBA)

OK... Staje się to bardziej logiczne

więc QuitDoc musi działać?

4 polubienia

Ja też nie rozumiem pożytku. Służy do tego polecenie close, a co więcej, w przypadku otwartych wielu dokumentów dostępne jest polecenie close all...

 

 

Uratować pokój, zostawiając go otwartym tak szybko, jak to możliwe?

 

CTRL+S ... Nie?

Zgadzam się z tobą co do przydatności tego działania, ale tworzę aplikację dla asystenta solidworks, który nie chce uczyć się obsługi oprogramowania...

 

W przeciwnym razie dla tych, którzy są zainteresowani, jest: (pomysł Happydada)

boolstatus = swApp.CloseAllDocuments(Prawda)

 

ale okno się nie zamyka, myślę, że to z powodu prośby o zapisanie wiadomości części, która się nie pojawia.

 

 

jfaradon powiedział:

Mam wrażenie, że QuitDoc Method (ISldWorks) również prosi o nazwę części przed jej zamknięciem.

 

 

Dziękuję za odpowiedzi

Aby to osiągnąć, użyłem metody Siuksów...  

 

Dla i = od 1 do 30

swApp.CloseDoc "Część" & i
Następny

 

Możesz również pobrać nazwę dokumentu, a następnie aktywować go, aby go zamknąć:

 

myTitle = mójModel.GetTitle

swApp.ActivateDoc2 mójTytuł, Prawda, 0

swApp.QuitDoc mójTytuł

 

Ponieważ jeśli masz więcej niż 30 plików części, Twoje rozwiązanie nie zadziała!