早上好,我的一个同事让我看一下他在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)
有什么想法吗?谢谢
答案 0 :(得分:0)
bFailIfExists
(如果CopyFile
的最后一个参数。
如果此参数为TRUE,并且新文件由lpNewFileName指定 已经存在,功能失败。如果此参数为FALSE且 新文件已经存在,该函数将覆盖现有文件,并且 成功。
这是可能的。此外,请检查DestinationFolder & CurrentOpenFile
是否有效。