如何实现用vba复制本身文件到指定路径 比如我现在有个a.xls 我想复制它本身到d:\log\文件夹里 并命名为当前日期 如:20100511.xls 多谢!
æ¹æ³ä¸ï¼FileCopy
å¯å¨VBAä¸ç´æ¥å¼ç¨ï¼å个æ件çcopyã
è¯æ³ï¼
FileCopy æºæ件å,ç®æ æ件å
注ï¼å¦ææ³è¦å¯¹ä¸ä¸ªå·²æå¼çæä»¶ä½¿ç¨ FileCopy è¯å¥ï¼åä¼äº§çé误ã
示ä¾ï¼
FileCopy å½åè·¯å¾, ç®æ è·¯å¾
æ¹æ³äºï¼CopyFile
éè°ç¨FileSystemObjectï¼å¤ä¸ªæ件å¯ä½¿ç¨éé 符ã
è¯æ³ï¼
object.CopyFile source, destination[, overwrite]
CopyFile æ¹æ³è¯æ³æå¦ä¸å é¨åï¼
é¨å æè¿°
object å¿ éçãobjectå§ç»æ¯ä¸ä¸ª FileSystemObject çååã
source å¿ éçãææä¸ä¸ªæå¤ä¸ªè¦è¢«å¤å¶æ件çå符串æ件说æï¼å®å¯ä»¥å æ¬éé 符ã
destination å¿ éçãææ source ä¸çä¸ä¸ªæå¤ä¸ªæ件è¦è¢«å¤å¶å°çæ¥å端çå符串ï¼ä¸å 许æéé 符ã
overwrite é项çãBoolean å¼ï¼å®è¡¨ç¤ºåå¨çæ件æ¯å¦è¢«è¦çãå¦ææ¯ Trueï¼æ件å°è¢«è¦çï¼å¦ææ¯ Falseï¼å®ä»¬ä¸è¢«è¦çã缺çå¼æ¯ Trueã注æå¦æ destination å ·æåªè¯»å±æ§è®¾ç½®ï¼ä¸è®º overwrite å¼å¦ä½ï¼CopyFile é½å°å¤±è´¥ã
示ä¾ï¼
Set Fso = CreateObject("Scripting.FileSystemObject")
Fso.CopyFile å½åè·¯å¾, ç®æ è·¯å¾
å¯å¨VBAä¸ç´æ¥å¼ç¨ï¼å个æ件çcopyã
è¯æ³ï¼
FileCopy æºæ件å,ç®æ æ件å
注ï¼å¦ææ³è¦å¯¹ä¸ä¸ªå·²æå¼çæä»¶ä½¿ç¨ FileCopy è¯å¥ï¼åä¼äº§çé误ã
示ä¾ï¼
FileCopy å½åè·¯å¾, ç®æ è·¯å¾
æ¹æ³äºï¼CopyFile
éè°ç¨FileSystemObjectï¼å¤ä¸ªæ件å¯ä½¿ç¨éé 符ã
è¯æ³ï¼
object.CopyFile source, destination[, overwrite]
CopyFile æ¹æ³è¯æ³æå¦ä¸å é¨åï¼
é¨å æè¿°
object å¿ éçãobjectå§ç»æ¯ä¸ä¸ª FileSystemObject çååã
source å¿ éçãææä¸ä¸ªæå¤ä¸ªè¦è¢«å¤å¶æ件çå符串æ件说æï¼å®å¯ä»¥å æ¬éé 符ã
destination å¿ éçãææ source ä¸çä¸ä¸ªæå¤ä¸ªæ件è¦è¢«å¤å¶å°çæ¥å端çå符串ï¼ä¸å 许æéé 符ã
overwrite é项çãBoolean å¼ï¼å®è¡¨ç¤ºåå¨çæ件æ¯å¦è¢«è¦çãå¦ææ¯ Trueï¼æ件å°è¢«è¦çï¼å¦ææ¯ Falseï¼å®ä»¬ä¸è¢«è¦çã缺çå¼æ¯ Trueã注æå¦æ destination å ·æåªè¯»å±æ§è®¾ç½®ï¼ä¸è®º overwrite å¼å¦ä½ï¼CopyFile é½å°å¤±è´¥ã
示ä¾ï¼
Set Fso = CreateObject("Scripting.FileSystemObject")
Fso.CopyFile å½åè·¯å¾, ç®æ è·¯å¾
温馨提示:答案为网友推荐,仅供参考
第1个回答 推荐于2017-12-16
VBA本身的filecopy好象不能复制打开的文件;
方法1:用SAVEAS 另存为
ThisWorkbook.SaveAs "D:\log\" & Format(Date, "yyyyMMdd") & ".xls"
方法2:借用DOS的COPY命令
Shell "cmd /c copy """ & ThisWorkbook.FullName & """ D:\" & Format(Date, "yyyyMMdd") & ".xls"本回答被提问者采纳
方法1:用SAVEAS 另存为
ThisWorkbook.SaveAs "D:\log\" & Format(Date, "yyyyMMdd") & ".xls"
方法2:借用DOS的COPY命令
Shell "cmd /c copy """ & ThisWorkbook.FullName & """ D:\" & Format(Date, "yyyyMMdd") & ".xls"本回答被提问者采纳
第2个回答 2010-05-11
set fso=CreateObject("scripting.filesystemobject")
fso.copyfile thisworkbook.fullname,"D:\log\" & format(date,"yyyyMMdd") & ".xls"
fso.copyfile thisworkbook.fullname,"D:\log\" & format(date,"yyyyMMdd") & ".xls"