为何用 Name As 移动文件有时能行有时不行?
我在一VB6程序中要操作Word文档,因涉及到处理文档中插图,要用到剪贴板,为了防止程序运行过程中弹出Word提示框(如“剪贴板中有大量图片,要应用到其他程序……”),所以要清空剪贴板,我先引用API函数:
Private Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function CloseClipboard Lib "user32" () As Long
Private Declare Function GetClipboardData Lib "user32" (ByVal uFormat As Long) As Long
Private Declare Function EmptyClipboard Lib "user32" () As Long
然后写下:
OpenClipboard (0)
EmptyClipboard
CloseClipboard
可以达到目的。但我在程序中还要将Word文档在处理完后移动到另一目录下,写下:
'在文档所在目录下建立DOC_BAK目录,用以备份源文档
If Dir(aDoc.Path & "\DOC_BAK", vbDirectory) = "" Then MkDir aDoc.Path & "\DOC_BAK"
'为复制备份源文档做准备(要带全路径及文件名,且只能在文档被Word释放后才能复制,故在后面实现)
Dim str1 As String, str2 As String
str1 = aDoc.Path & "\" & aDoc.Name
str2 = aDoc.Path & "\DOC_BAK" & "\" & aDoc.Name
当程序释放Word文档和Word后,再写下移动文件的代码:
Name str1 As str2
奇怪的是:
如果处理Word文档时,若文档中不含插图,程序不会调用剪贴板,此时移动文件能成功。
但当处理Word文档时,若文档中含有插图,程序就会调用剪贴板,此时移动文件就不能成功。
我百思不解,望高手赐教。谢谢!