我需要帮助调试我在其中一个工作簿上发现的奇怪错误。我为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”中的行数,它还给我以下错误消息“RUn time error 9”下标超出范围“有没有办法我可以解决这个问题,因此它不会调用“test2”而只调用“test1”
答案 0 :(得分:1)
您可以使用ThisWorkbook.Worksheets("SalesContest").Range("A3:A" & lastRow).Clear
确保它适用于运行代码的工作簿。