【问题标题】:Error Saving File in Document Folder of Library在库的文档文件夹中保存文件时出错
【发布时间】:2017-06-27 16:11:32
【问题描述】:

我正在编写一个以 VBScript 作为脚本语言的 HTA 文件。我有一个功能,提示用户选择他们想要保存文档的文件夹。这段代码不是我自己写的,而是从here借来的。

Function SelectFolder(myStartFolder)
Dim objFolder, objItem, objShell

Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder(0, "Select Folder to Save New File", 0, myStartFolder)

If IsObject(objFolder) Then SelectFolder = objFolder.Self.Path
End Function

我在创建文件时按顺序在另一个函数中调用此函数并提示用户选择保存位置:

Sub Example()
Dim destPath, destFile, objWorkbook
destPath = SelectFolder(libPath)
destPath = destPath & "\Sample Export"

Set destFile = CreateObject("Excel.Application")
Set objWorkbook = destFile.Workbooks.Add()
objWorkbook.SaveAs(destPath)

(code to edit excel file)

End Sub

Example() 工作正常,除非有人选择将他们的文档保存在 Windows 中的四个默认库之一(文档、音乐、图片、视频)中。在这种情况下,我收到一条错误消息,提示“无法访问文件”,并指出错误出现在“objWorkbook.SaveAs(destPath)”行。然后错误框给了我以下建议:

  • 确保指定的文件夹存在
  • 确保包含该文件的文件夹不是只读文件夹
  • 确保文件名不包含以下任何字符: ? { } : |或 *
  • 确保文件/路径名包含的字符不超过 218 个。

当我打开 HTA 文件并单击调用 Example() 的按钮时发生错误,然后会打开一个对话框要求用户选择文件位置。 When Documents, Music, Pictures, or Videos is chosen, a "Script Error" box pops up with the error message listed above.我对 VBScript 不够熟悉,无法确切知道问题所在。如有任何建议,我将不胜感激。

【问题讨论】:

标签: vbscript hta


【解决方案1】:

我不确切知道上述问题的解决方案是什么。但是,我注意到我传递给SelectFolder 的路径中有错字。 libPath 应该是环境变量中的 %userprofile%。但是,我将“userprofiles”复数化为%userprofiles%。这把我带到了一个看起来正确但不是的地方。我修正了错字,现在BrowseForFolder 将我带到C:/Users/*username*,就像它应该的那样。事实证明,由于BrowseForFolder 中的第四个参数,我被发送到桌面位置,而不是我想要的用户配置文件。

【讨论】:

    猜你喜欢
    • 2012-06-18
    • 2021-10-19
    • 1970-01-01
    • 1970-01-01
    • 2015-02-22
    • 2015-10-05
    • 2022-07-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多