在 onedrive 文件夹中创建和保存文件时出现 VBA 错误

问题描述 投票:0回答:1

我有一个 VBA 文件,它创建包以支持销售人员向客户展示报价。我有一个主模板,但这个特定销售流程的本质是,在客户同意之前,报价可能会多次更改。

为了解决这些重新运行的问题,宏将在 OneDrive 中创建一个文件夹,然后将自身保存在该文件夹中,以便无需重新启动即可运行。

但是,当执行以下代码时,我遇到了一些错误 - 以下是步骤的演练:

  • SaveFilePath 是一个字符串,其中包含运行它的用户的目标文件夹 - 即 [C:\Users\User.Name\Company\Output]
  • 然后添加一些合同详细信息,以确定为该客户创建的文件夹的名称 - 即 [C:\Users\User.Name\Company\OutputS - 客户名称 - Gas]
  • 然后我使用 Mdir 创建一个具有上述路径的文件夹 - 这有效
  • 然后它会将自身保存在它创建的文件夹中,名称以“Master.xlsb”结尾 - 这就是我遇到问题的地方

该过程抛出此错误:

运行时错误 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

任何有关这方面的帮助将不胜感激 - 我正在用这个把我的头撞到墙上。

谢谢:)

excel vba onedrive mkdir
1个回答
0
投票

我在稍微不同的场景中遇到了相同的错误,所以我认为这些信息可能有助于引导我们到达某个地方。

我正在从 VBA 将文件保存到现有 OneDrive 文件夹中,但遇到了相同的错误。

我注意到我的进程创建的文件名不是 C:...,而是 https://(即使我是从 C: 运行的)。我假设这是因为它是 OneDrive 同步文件夹。我调整了我的流程来解决这个问题,但错误仍然发生。

当我在非 OneDrive 文件夹中运行该进程时...

  1. 我没明白问题
  2. 当文件已存在时,我收到“您要替换吗”消息,而不是错误

我推测这是某种 OneDrive 同步延迟/清理问题,因为它会随着时间的推移而消失。

© www.soinside.com 2019 - 2024. All rights reserved.