【问题标题】:Excel 2013 code generates "Path not found" error in Excel 365Excel 2013 代码在 Excel 365 中生成“找不到路径”错误
【发布时间】:2019-02-02 10:05:26
【问题描述】:

我有来自 Excel 2013 的 VBA 代码,它曾经可以工作。

ActiveWorkbook.Sheets("Template").Copy After:=ActiveWorkbook.Sheets(Sheets.Count)

我换成了安装了 Excel 365 的电脑。

我会得到错误:

找不到路径:'\VBA3CD.tmp' 400

VBA3CD.tmp 文件名每次都会不同。我已经在 Excel 的安全设置中“启用所有宏”。

我尝试过同一事物的不同变种,例如:

Set wsTemplate = Sheets("Template")
wsTemplate.Copy After:=Sheets(Sheets.Count)

得到相同的“找不到路径”错误。

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    如果您确实收到了一个错误,即无法通过单个 VBA 命令对文件系统执行某些操作以复制工作表 - 这显然不会触及文件系统,它都在内存中 - 然后是关于那个工作表可能正在尝试运行 vba 代码。

    我刚刚检查过,当复制工作表时,副本会运行 WORKSHEET_CALCULATE 和 WORKSHEET_ACTIVATE 事件。可能是这些事件之一或另一个正在运行需要该路径的代码。您只需检查正在复制的工作表的 VBA 代码 - 它是否有任何 Worksheet_ 子例程?

    【讨论】:

    • 谢谢罗伊。我找到了根本问题,但仍然无法解决——这不是 VBA 代码。我重新开始使用新的 Excel,在没有任何 VBA 代码的情况下复制了我的工作表——我可以很好地复制工作表(即手动)。一旦我添加了一个 VBA 模块,即使模块是空白的!,“找不到路径”错误就会出现。然后,我尝试使用新鲜的空白 Excel 工作表 + 添加一个模块,不再出现错误。所以,我的工作表中一定有什么东西导致了这个问题???
    • 好的,我想出了一个解决方法。这几乎肯定与 Windows 或 Office 365 中的某些安全设置有关。我仍然无法修复它。解决方法是以管理员身份运行 Excel ....
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-02
    相关资源
    最近更新 更多