0

我需要帮助调试我在我的一个工作簿上发现的一个奇怪的错误。我为一个excel文件写了一些vba代码,它以某种方式调用了一个不同的工作簿。举个例子,假设我有一个名为“test1”的excel文件,该文件有来自另一个名为“test2”的工作簿的一些引用以下代码仅适用于来自“test1”的工作簿

   lastRow = Cells(Rows.Count, 1).End(xlUp).Row ' will get the last row
   MsgBox (lastRow) 'wrote this for debugging purposes
   Worksheets("SalesContest").Range("A3:A" & lastRow).Clear

我有这段代码,所以它只能在“test1”文件中清除A行的内容但是当我随机打开“test2”并以某种方式在“test2”上运行上面的代码时问题就来了,即使它假设只在“ test1”所以当我打开“test2”时,有一个消息框显示“test2”中的行数,它还给了我以下错误消息“运行时错误 9”下标超出范围“有什么办法可以修复所以它不叫“test2”而只叫“test1”

4

1 回答 1

1

您可以使用ThisWorkbook.Worksheets("SalesContest").Range("A3:A" & lastRow).Clear它来确保它适用于运行代码的工作簿。

于 2013-08-19T20:31:22.577 回答