VBA当前路径设置问题

请将此宏复制到word宏编辑器中并运行,问题就在弹出对话框中。
Sub lengfengfly()
Dim Adoc As String, PsDoc As Document
ChDrive "C"
ChDir "C:\"
MsgBox "当前路径已经设置成了:" & CurDir("D")
Set PsDoc = Documents.Open("C:\a.docx")
PsDoc.Activate
PsDoc.Save
PsDoc.Close True
MsgBox "为什么现在当前路径却变成了:" & CurDir("D")
End Sub
抱歉,问题被我修改错了!!!本问题是在回答别人提问时同时提出的,加了修改:http://zhidao.baidu.com/question/88294547.html
问题正在:
Sub lengfengfly()
Dim PsDoc As Document
ChDrive "D"
ChDir "D:\test"
Set PsDoc = Documents.Open("a.doc")
MsgBox "当前路径已经设置成了:" & CurDir("D")
PsDoc.Save
MsgBox "为什么现在当前路径却变成了:" & CurDir("D")
PsDoc.Close True
End Sub

我应该明白你的意思了!
那个别人提出的问题,在D盘设置的当前路径为"D:\test" ,并且将当前盘更改为D盘,可是在打开文件进行操作(确切的说是因为执行了.Save)之后,当前盘却更改回了默认盘(非D盘),当然当前路径也变为了默认盘的当前路径.这个问题唯一的解释就是把他当作一个Bug了.
只要可以区别这几个函数的作用就可以了:
要注意,CurDir是返回当前盘的当前路径,而CurDir("D")所返回的是D盘的当前路径,这里你设置的为D:\test,当然返回的就是这个路径了.他们之间是有区别的.
------------------------------------
参考:
CurDir 函数
返回一个 Variant (String),用来代表当前的路径。
语法
CurDir[(drive)]
可选的 drive 参数是一个字符串表达式,它指定一个存在的驱动器。如果没有指定驱动器,或 drive 是零长度字符串 (""),则 CurDir 会返回当前驱动器的路径。 在 Macintosh上,CurDir 忽略任何指定的 drive ,并只简单地返回当前驱动器的路径。

CurDir 函数示例
本示例使用 CurDir 函数来返回当前的路径 在 Macintosh 中, 使用CurDir可以省略驱动器名称。 默认驱动器名称是 “HD” 并且路径部分由冒号取代反斜线隔开。 同样,可以指定 Macintosh 的文件夹代替 \Windows。。

' 假设 C 驱动器的当前路径为“C:\WINDOWS\SYSTEM”(在 Microsoft Windows 中)。
' 假设 D 驱动器的当前路径为“D:\EXCEL”。
' 假设 C 为当前的驱动器。
Dim MyPath
MyPath = CurDir ' 返回“C:\WINDOWS\SYSTEM”。
MyPath = CurDir("C") ' 返回“C:\WINDOWS\SYSTEM”。
MyPath = CurDir("D") ' 返回“D:\EXCEL”。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-03-06
CurDir("D") 这个函数是返回D盘当前路径,不清楚你那里遇到的问题是什么。
在我的机器上打开一个空白Word文档,然后插入后面这段代码运行,结果两次提示当前路径都是“D:\test”,所以我分析出现这个问题是由于你在执行这段代码的时候同时打开了其他Word文档或者是打开了Excel文件。
第2个回答  2009-03-12
ffffff

相关了解……

你可能感兴趣的内容

大家正在搜

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网