Ich habe einen Code in VBA entwickelt, um einige EPDM-Dokumente zu kopieren und einzufügen, aber damit dies funktioniert, muss das Dokument mindestens einmal geöffnet werden, damit es erkannt wird.
Ich verstehe nicht, warum und wie man das vermeiden kann. Wenn einige eine Idee haben, bin ich dafür.
Set FileManagement = CreateObject("Scripting.FileSystemObject") Quelle = "C:\Quelllink\" & Zellen(l, c). Wert Ziel = "C:\Empfängerlink\" & Zellen(l, c). Wert FileHandlingCopyFile Quelle, Ziel
................
Der Code ist in einer Schleife enthalten, und es funktioniert, aber das Problem ist, dass das Kopieren/Einfügen nur erfolgt, wenn ich das Dokument bereits geöffnet habe. Sicherlich blockiert EPDM, wenn das Dokument noch nie geöffnet wurde.....
Ich denke, es kommt von der Tatsache, dass Sie die Windows-Methode verwenden.
Versuchen Sie es mit dieser EPDM-Methode: http://help.solidworks.com/2015/english/api/epdmapi/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder8~CopyFile2.html
Ich habe nur entfernte Erinnerungen an EPM, und es ist nur eine Reflexion, ohne die Antwort zu sein... Aber du solltest den Raum nicht "aufschließen", bevor du irgendetwas tun kannst? Vielleicht könnte es also von einer dummen Frage nach den Rechten zur Aktivierung kommen?
Ich komme gut nach der Schlacht an, aber wenn es für andere nützlich sein kann...
Die EPDM-Dokumente, die Sie kopieren möchten, müssen nicht unbedingt mindestens einmal geöffnet oder extrahiert werden, sondern müssen einfach wieder in den lokalen Cache zurückgeführtwerden, um von der Copy-and-Paste-Funktion berücksichtigt zu werden.
Der folgende Code ist C#, ich lasse Sie ihn in VBA übersetzen:
EdmVault5-Tresor ; vault = neuEdmVault5();
Gewölbe. LoginAuto("nomducoffre", 0);
string vollständiger Name = @"C:\sicher\Verzeichnis\file.sldprt"; Geben Sie den Dateinamen mit dem gesamten Pfad ein. string file = vollständiger Name. Teilzeichenfolge(vollständiger Name.LastIndexOf("\\") + 1); string Ordner = vollständiger Name. Teilzeichenfolge(0, vollständiger Name. Länge - Datei. Länge - 1);