【发布时间】:2014-09-16 04:10:55
【问题描述】:
我有一个包含多个宏的 excel 工作簿,其中 4 个是“设置”宏,用于将信息写入某些单元格,而最终的“工具”宏是在运行时引用其他宏写入的单元格的宏.
“工具”宏工作正常。问题出在“设置”宏中。
有 2 种不同的“设置”宏,其中 2 个打开文件资源管理器,以便用户可以选择“源”和“目标”文档,然后将文件的路径打印到各自的单元格中,而另外两个打开“源”文档,以便用户可以突出显示他们想要复制的单元格。
整个过程一直运行良好,直到我的一位同事找到我并说他们在尝试运行 2 个“设置”宏来打印单元格的范围和位置时遇到了错误。
All 4 "Settings" macro codes are here.
出现问题的两个宏是 ChangeDataWithLoop 和 HeaderLocationsWithLoop。
错误出现在两个宏的同一行代码中。
SrcPath = Workbooks("Data Tool 2").Worksheets("Data Tool Settings").Cells(6, 3).Value
错误是#9
下标超出范围。
到目前为止,我无法在我的机器上重现该错误,但另一位同事登录另一台机器时重复了该错误。
我完全被难住了。请帮忙!
其他信息:
- 包含所有 5 个宏的工作簿的名称是“数据工具 2”,它位于网络驱动器上。
- 带有设置的工作表的名称是“数据工具设置”
- 我被列为该文档的作者。 (不确定是否重要)
- 文档不受保护。
【问题讨论】:
-
只有在工作簿名称或工作表名称无效时才会发生这种情况。一方面,我总是使用工作簿的全名(带扩展名),例如
Data Tool 2.xls。我会用一些辅助函数一一测试这些,例如pastebin.com/MYadsMgw -
我可以通过将“Workbooks("Data Tool 2").Worksheets”更改为简单的表格来修复它。不过感谢您的帮助!