Problem des Kopierens und Einfügens von VBA

Hallo

 

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.

 


 

Hallo

Kein Code und mehr Details. Wir können Ihnen nicht helfen...

1 „Gefällt mir“

Hallo

Hier ist das Ende meines fraglichen Codes.

....................

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.....

Hallo

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?

2 „Gefällt mir“

Extrahieren Sie die @coin37coin Datei. :)

Bearbeiten: solange wir die Rechte an diesen Dateien haben!

2 „Gefällt mir“

Ja, das ist das Ding, Benoit.LF ... Ich hatte gewarnt, dass dies ferne Erinnerungen wären;)

Hallo ihr alle

Ganz Coin37coin, Sie müssen die Datei extrahieren. Der zu extrahierende Code ist in den EPDM-API-Dateien gemäß einem Axemble-Formatierer verfügbar

2 „Gefällt mir“

Hallo

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 = neu EdmVault5();

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);
                    
Ordner IEdmFolder5 ;
Ordner = Tresor. GetFolderFromPath(Ordner);
IEdmFile5-Datei ;
Datei = Ordner. GetFile(Datei);
Datei. GetFileCopy(this. Griff. ToInt32(), "");

Alles, was Sie noch tun müssen, ist, Ihre Kopier- und Einfügefunktion zu aktivieren.

Herzliche Grüße