遇到一个问题用copyfile方法无法overwrite已存在的文件,
提示
runtime error 58
文件已存在
代码如下
dim fs as object
set fs=CreateObject("scripting.FileSystemObject")
提示
runtime error 58
文件已存在
代码如下
dim fs as object
set fs=CreateObject("scripting.FileSystemObject")
fs.copyfile "c:\book1.xls", "c:\book1.bak", overwrite=true
解决办法
fs.copyfile "c:\book1.xls", "c:\book1.bak", True
第三个参数直接用True就行了,否则程序会把overwrite当成一个变量对overwrite=true进行判断,因为变量初始值是0(False),所以这样这句代码等效于fs.copyfile "c:\book1.xls", "c:\book1.bak", false=true,即fs.copyfile "c:\book1.xls", "c:\book1.bak", false
使用overwrite命名参数的话,应该是overwrite:=true,注意中间的冒号,另外需要前绑定,即明确引用类型库,明确声明对象类型,而且有些函数、方法不支持命名参数,具体需要查看说明。
来自 http://club.excelhome.net/thread-664071-1-1.html?jdfwkey=pfggo2