Ik heb een code ontwikkeld in VBA om sommige EPDM-documenten te kopiëren en te plakken, maar om dit te laten werken, moet het document minstens één keer worden geopend om het te herkennen.
Ik begrijp niet waarom en hoe ik dit kan vermijden. Als sommigen een idee hebben, ben ik er helemaal voor.
De code is opgenomen in een lus en het werkt, maar het probleem is dat het kopiëren/plakken alleen wordt gedaan als ik het document al heb geopend. EPDM blokkeert toch als het document nooit is geopend.....
Ik denk dat het komt door het feit dat je de Windows-methode gebruikt.
Probeer deze EPDM-methode te gebruiken: http://help.solidworks.com/2015/english/api/epdmapi/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder8~CopyFile2.html
Ik heb alleen verre herinneringen aan EPM, en het is slechts een reflectie zonder het antwoord te zijn... Maar je moet de kamer niet "ontgrendelen" voordat je iets kunt doen? Dus, misschien kan het komen van een domme vraag over rechten om te activeren?
Ik kom ruim na de strijd aan, maar als het nuttig kan zijn voor anderen....
De EPDM-documenten die u wilt kopiëren, hoeven niet per se minstens één keer te worden geopend of te worden uitgepakt, maar hoeven alleen maar te worden gerepatrieerd naar de lokale cacheom in aanmerking te worden genomen door de kopieer- en plakfunctie.
De volgende code is C#, ik laat je het vertalen naar VBA:
EdmVault5 kluis; vault = nieuweEdmVault5();
Gewelf. LoginAuto("nomducoffre", 0);
volledige naam van de tekenreeks = @"C:\safe\directory\file.sldprt"; Zet de bestandsnaam met al het pad Tekenreeksbestand = volledige naam. Subtekenreeks (volledige naam.LastIndexOf("\\") + 1); tekenreeksmap = volledige naam. Subtekenreeks(0, volledige naam. Lengte - bestand. Lengte - 1);
IEdmFolder5 map; map = kluis. GetFolderFromPath(map); IEdmFile5-bestand te openen; bestand = map. GetFile(bestand); bestand. GetFileCopy(dit. Handvat. ToInt32(), "");
Het enige dat u nog hoeft te doen, is uw kopieer- en plakfunctie in te voeren.