Wyodrębnianie i archiwizowanie za pomocą VBA

Witam

 

Chcę wyodrębnić lub zarchiwizować pliki za pomocą makra pliku Excel.

Mam makro, które tworzy dokumenty w PDM z szablonu, aby mieć poprawną mapę danych.

Widziałem na różnych forach, że istnieje API EPDM, które pozwala robić wiele rzeczy, jednak nie znalazłem składni, aby zrobić tę słynną blokadę/odblokowanie...

Jeśli ktoś ma jakiś przykład, jestem za tym.

Witam

Ogólna dokumentacja znajduje się tutaj:

http://help.solidworks.com/2014/English/api/SWHelp_List.html

W przypadku problemu zobacz to:

   Jeśli Prawda = plik. IsLocked Then

        plik. Odblokuj plik 0, ""

    Zakończ jeżeli:

Lub  :

https://forum.solidworks.com/thread/69282

https://forum.solidworks.com/thread/68948

https://forum.solidworks.com/thread/55032

https://forum.solidworks.com/thread/100459

Witam

Już zrobiłem to makro
Zamieszczam moduł z utworzonymi przeze mnie funkcjami

Mam nadzieję, że to ci pomoże

Jeśli nie możesz się z niego wydostać, możesz skorzystać z interfejsu API epdm, który znajduje się w ...\Programy\SOLIDWORKS PDM\API_GB.chm

Nie wahaj się, jeśli chcesz, aby ręka to zadziałało ;)


epdm.bas powiedział:

Dziękuję wam obojgu. 

Udało mi się zarchiwizować (co mnie najbardziej interesuje) i rozpakować z podanymi linkami.

Z drugiej strony dla pliku epdm.bas który dostarczasz mam problem z funkcją, excel nie rozpoznaje IEdmFolder9, daje mi błąd w temacie. (Niezdefiniowany błąd standardowy).

 

Aby skorzystać z tej funkcji, utworzyłem plik 

Lock_File("Pełna ścieżka do pliku") 

Czy jest to słuszne posunięcie?

1 polubienie

Czy dodałeś odniesienie do EPDM w Excelu?
Jeśli tak, spróbuj ponownie wpisać polecenie, aby zobaczyć, którą wersję oferuje, być może nie mamy tych samych wersji
w przeciwnym razie możesz usunąć deklarację, myślę, że to też zadziała
 

Jeśli dobrze pamiętam jak to działa, musisz znaleźć ID swojego pliku w EPDM z pełną ścieżką, a następnie możesz go zarchiwizować
ponieważ ścieżka nie jest jego lokalizacją w EPDM, jest wirtualna ścieżka w EPDM (nie wiem, czy podążasz za mną ;) )

Korzystam z programu EXCEL 2013, teraz funkcja ulega awarii i przechodzi na direct() = Split(Link, "\")

Myślę, że jest problem z użytymi odniesieniami

Jeśli chodzi o referencje, brakuje mi jednego, nazywa się: VBAProject

Linia bezpośrednia ()=split (link,"\") służy do pobierania w tablicy ścieżki pliku osobno

Przykład:

link = "C:\rzecz\rzecz\plik.atnotwhat

direct(0) = "C:"
direct(1)="foo"
direct(2)="bidule"
direct(3)="plik.atnotwhat"

następnie komponuję go ponownie bez nazwy pliku
co daje mi po wykonaniu pętli, że ja
 

Lockfolder = "C:\foo\doodle\"


Czy jesteś pewien nazwy brakującego odniesienia vbaproject bo nawet ja go nie używam
Poza tym nigdy jej nie widziałem

możesz wykonać inną funkcję niż moja, aby odzyskać ścieżkę do pliku
Teraz masz pomysł ;)
 

Korzystam z programu Excel 2010

1 polubienie

jeśli możesz zrobić zrzut ekranu swoich referencji, w przeciwnym razie może mi to pomóc
W języku Visual Basic, Narzędzia, Odwołania

1 polubienie

Rozwiązałem problem, ustawiając tablicę direct() z dim direct() jako ciąg znaków i nie mam już problemu.

1 polubienie

Fajnie cieszę się, że udało mi się pomóc ;)

1 polubienie