我有一个 VBA 文件,它创建包以支持销售人员向客户展示报价。我有一个主模板,但这个特定销售流程的本质是,在客户同意之前,报价可能会多次更改。
为了解决这些重新运行的问题,宏将在 OneDrive 中创建一个文件夹,然后将自身保存在该文件夹中,以便无需重新启动即可运行。
但是,当执行以下代码时,我遇到了一些错误 - 以下是步骤的演练:
该过程抛出此错误:
运行时错误 1004:对象“_Workbook”的方法“SaveAs”失败
但是,当我检查文件夹时,它已成功将自身保存在文件夹中 - 即它已经工作,但仍然抛出错误。
我已经尝试过 SaveAs 行中的一些参数,但仍然收到此错误。同样,关闭警报 - 仍然遇到同样的问题。
SaveFilePath = SaveFilePath & TenderID & " - " & wsControl.Range("CustomerName") & " - " & Utility & " " & MPAN & "\"
If Dir(SaveFilePath, vbDirectory) = vbNullString Then VBA.FileSystem.MkDir (SaveFilePath)
' Application.DisplayAlerts = False
wb1.SaveAs FileName:=SaveFilePath & FileName & " Master.xlsb", ConflictResolution:=xlLocalSessionChanges 'add thisback in when live
' Application.DisplayAlerts = True
任何有关这方面的帮助将不胜感激 - 我正在用这个把我的头撞到墙上。
谢谢:)
我在稍微不同的场景中遇到了相同的错误,所以我认为这些信息可能有助于引导我们到达某个地方。
我正在从 VBA 将文件保存到现有 OneDrive 文件夹中,但遇到了相同的错误。
我注意到我的进程创建的文件名不是 C:...,而是 https://(即使我是从 C: 运行的)。我假设这是因为它是 OneDrive 同步文件夹。我调整了我的流程来解决这个问题,但错误仍然发生。
当我在非 OneDrive 文件夹中运行该进程时...
我推测这是某种 OneDrive 同步延迟/清理问题,因为它会随着时间的推移而消失。