我在其他地方看到可以实现用宏重命名当前excel文件.按照你的思路,当前的excel运行这个宏,表明当前excel文件正在使用,也无法实现。
参考一下重命名的宏:
http://zhidao.baidu.com/link?url=x1mcVQsbqwCOdu8xhseebNMLQLn0puXfwsctWdBZfZqTpGRJPGUlkpxyyvFlhATp6-HFZLfBjHiZWx4B-GkAOq
ä¿®æ¹ä¸äºï¼å 为å½åæ件已ç»æå¼ï¼è¯´æå½åæ件æå¨çè·¯å¾æ£å¨ä½¿ç¨ã
çäºä½ çé®é¢è¡¥å ï¼å½æ件å¦åååæ件èªè¡éåºå½åæ件ï¼åå é¤åæ件æ¯å¯è¡çãä½ çé®é¢æ¯ä¿®æ¹å½å被å ç¨çæ件夹ï¼è¿ä¸ªä¸è¡ãå¦æä½ ä¹å°æ件éè¿å®è½¬ç§»æå¦åå°å«çè·¯å¾ï¼åæ¹åæ¥çæ件夹åï¼å¯ä»¥ãç¶åå¨è½¬ç§»æå¦åååæ¥ç以æ´æ¹å称çè·¯å¾ã
我在其他地方看到用宏重命名当前excel文件.是否可以参考一下
http://zhidao.baidu.com/link?url=x1mcVQsbqwCOdu8xhseebNMLQLn0puXfwsctWdBZfZqTpGRJPGUlkpxyyvFlhATp6-HFZLfBjHiZWx4B-GkAOq
追问已阅。下面分享一下对该网友提供脚本的理解:
Sub redir()
A = "test"
F = "c:\windows\temp"
B = ThisWorkbook.Path '获得文件路径
c = ThisWorkbook.Name '获得文件名
D =F& "\" & A & ".xlsm" '在这里需要保存为带宏的,否则不好用哦
E = B & "\" & c
ActiveWorkbook.Save '在另存之前先保存一下自身吧
ThisWorkbook.SaveAs Filename:=D '注意这一行,【实际上就是另存为另外一份文件】,这是利用了【Excel另存后继续打开刚刚保存的文档】这一特点。在这个基础上,另存一份文件,然后再把原先的文件删除掉。但是文件夹另有不同,它需要使用下面的组件来实现:
Set fso = CreateObject("Scripting.FileSystemObject")
fso.MoveFolder B, c
End Sub
理论上这个在xp下默认是可行的,可是win7出于安全的考虑,默认禁止Scripting.FileSystemObject这个组件,所以运行到最后一行时提示禁止的权限。
而且大多xp都不会使用原版了,经过这么多年的优化与改造,很可能xp也会禁止使用这FSO组件,毕竟它是不安全的,利用它可以写一个.vbs的文件或.js文件来对硬盘里的文件进行移动、复制、删除等敏感操作。
再者,如果这个组件经过设置之后可以使用,那么还要考虑到文件夹是否占用的问题,这又回归到第一次回答这个问题的时候。【占用的文件夹是不能重命名的】,这时候又要考虑,把该文件夹关掉,并把该文件夹内正在打开的文件、应用程序等关掉(结束进程)。这又会产生新的问题。
或许有更好的方法,请看到的朋友找到后与大家分享。