【问题标题】:Excel VBA ChDrive/ChDir not changing file save location of word documentExcel VBA ChDrive / ChDir不更改word文档的文件保存位置
【发布时间】:2019-02-20 07:21:11
【问题描述】:

我一直在尝试获取 Excel VBA 脚本来打开现有的 Word 文档(主模板),然后自动将其另存为 .docx 文件位置。文件名和文件位置的变量保存在通过 vlookups 创建的 Excel 文档 (x y z) 中。

当脚本打开并保存文档时,它始终保存在默认文件位置(我的文档)而不是指定位置(文件夹 3)。

我的理解是需要 ChDrive 和 ChDir 函数来调整它,但我无法让它工作。

这似乎与这个问题/答案Excel VBA Saving File in Designated Location 非常相似,但我不明白如何将其集成到此代码中,或者它是否实际上是同一个问题。

非常感谢任何帮助。

Sub OpenDocSaveforUpdate()

Dim x As Range
Dim y As Range
Dim z As Range
Dim folder As String
Dim folder2 As String

Set wdApp = CreateObject("word.application")
wdApp.Visible = True
Set x = Sheets("Sheet1").Range("B31")
Set y = Sheets("Sheet1").Range("B32")
Set z = Sheets("Sheet1").Range("B33")

folder = "T:\Archive"
folder2 = x & y & z & ".docx"
folder3 = folder & x & y
Filename = (folder & folder2)

Documents.Open (Filename)

ChDrive "T"
ChDir (folder3)
wdApp.ActiveDocument.SaveAs (z & Format(Now, "yyyymmdd") & ".docx")

Set wdapp = Nothing

End Sub

【问题讨论】:

  • 为什么不 .saveas 文件夹 & "\" & z ?
  • 只需给出SaveAs 的完整路径而不是文件名。
  • 我以为SaveAs函数只允许你指定一个文件名,你能指定一个文件路径吗?

标签: excel vba ms-word


【解决方案1】:

感谢 Jeeped 和共产国际。

这个问题的更简单的解决方案是通过在文件名中使用以“\”分隔的文件夹名称来提供SaveAs 的完整路径。

简单多了

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-30
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多