VBA将Solidworks文件复制到中央文件夹

时间:2019-02-26 14:33:11

标签: vba object solidworks fso

早上好,我的一个同事让我看一下他在Solidworks上的VBA,我对问题所在感到困惑。基本上,他正在搜索旧的SolidWorks工程图,以查找与他正在从事的新项目相关的工程图。如果找到合适的图纸,则使用宏来制作该图纸的副本,将其移动到新项目的文件夹中,关闭旧文件,然后打开新图纸。宏如下

Sub Move_Copy()

Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set FSO = VBA.CreateObject("Scripting.FileSystemObject")

'Where the Copy Files are going
DestinationFolder = "\\SERVER\FOLDER\subfolder"

'Gets full path name of current file that is open
MyPath = swModel.GetPathName

'Gets File Name with extension
CurrentOpenFile = Mid(swModel.GetPathName, InStrRev(swModel.GetPathName, "\") + 1)
'This copies the file and moves it
Call FSO.CopyFile(MyPath, DestinationFolder & CurrentOpenFile, True)

'This Closes the Current Document
swApp.QuitDoc CurrentOpenFile

'This opens the moved file
swApp.OpenDoc6 DestinationFolder & CurrentOpenFile, swDocDRAWING, swOpenDocOptions_Silent, "", ERRORS, WARNINGS

End Sub

困扰他的那条线是

Call FSO.CopyFile(MyPath, DestinationFolder & CurrentOpenFile, True)

有什么想法吗?谢谢

1 个答案:

答案 0 :(得分:0)

bFailIfExists(如果CopyFile的最后一个参数。

  

如果此参数为TRUE,并且新文件由lpNewFileName指定   已经存在,功能失败。如果此参数为FALSE且   新文件已经存在,该函数将覆盖现有文件,并且   成功。

Source

这是可能的。此外,请检查DestinationFolder & CurrentOpenFile是否有效。