运行时错误'1004':工作表类的复制方法失败 - 临时文件问题

时间:2018-03-08 19:24:50

标签: excel vba excel-vba

问题

我们有一个excel vba宏,我们一直用它来将工作表复制到一个新的工作簿中,以创建一个文件的“报告”版本多年。

此代码行的代码失败:

ThisWorkbook.Worksheets(array_sheet).Copy

并抛出以下错误:

  

找不到文件:'C:\ Users \ my_username \ AppData \ Local \ Temp \ VBXXXX.tmp'

enter image description here

  

运行时错误'1004':Worksheet类的复制方法失败

enter image description here

可能是个人资料/安全设置问题

最近,我们聘请了一位使用Windows 7和Excel 2010的新员工,这是我们其他员工使用的问题。新用户遇到此问题,就像我在Windows 10,Excel 2016上一样。我也可以在Excel 2016中的Citrix环境中成功运行代码。这使我相信它可能是某种类型的安全权限/配置文件设置问题,并且与Windows或MS Office版本无直接关系。我的机器上有管理员权限,我的同事也遇到了这个问题。

到目前为止我所知道的

  • 在上面的代码中,我们一次复制多张纸,这是 是一个尝试的解决方法,没有解决错误。先前 我们将每张表单独复制到新工作簿中。
  • 错误的另一个奇怪特征是在旧代码中复制 每张纸单独,它不会在同一张纸上出错 每一次,很少在第一张纸上。

  • 我们发现的唯一解决方案是关闭并重新打开excel 100%的时间解决问题。

  • .tmp文件每次都有不同的编号,而.tmp文件则是 正在引用是在进程中创建的,如果我让它存在则存在 挂起或进入调试。

  • 我们尝试在单独复印纸张时添加延迟,但是 这不能解决错误,也不会清除引用的错误 临时目录。

  • 我已经在Stack Overflow上提出了类似的问题,这不是重复 - 我们遇到的问题与其他帖子不同,并不是由相关的建议解决方案修复。

这是我们的软件/操作系统设置表和错误状态:


| User        | OS/Software               | Status        |
|-------------|---------------------------|---------------|
| Old User    | windows 7/ office   2010  | works         |
| Old User    | citrix excel 2016         | works         |
| Me (new pc) | citrix excel 2016         | works         |
| New User    | citrix excel 2016         | works         |
|-------------|---------------------------|---------------|
| New User    | windows 7/ office   2010  | does not work |
| Me (new pc) | windows 10/ office   2016 | does not work |

有没有人遇到过类似的问题?有任何建议的解决方案吗?

2 个答案:

答案 0 :(得分:2)

我听说有人说这是因为他们的反病毒。我还没能测试过。我唯一的另一个想法是,可能有一个Windows更新破坏了这个VBA代码,因为这在过去几个月内刚刚开始发生在我的代码中。

答案 1 :(得分:0)

  1. 关闭所有excel文件,然后重新打开宏文件,有时它现在可以正常工作。
  2. 如果不起作用,请尝试从文件夹C:\Users\my_username\AppData\Local\Temp\中删除readonly属性,然后重试。