我试图在excel中创建一个简单的vba函数,通过查找最后使用的行并将其设置为结束,清除从A列到K和第6行到数据底部的一系列数据范围。这是我的代码无效:
Sub clearNameData()
Dim destSheet As Worksheet: Set destSheet = ThisWorkbook.Worksheets("Name Search")
lMaxRows = destSheet.Cells(destSheet.Rows.Count, "A").End(xlUp).Row
destSheet.range("A6:K & lMaxRows").ClearContents
End Sub
当我运行此代码时,它给出了错误“运行时错误'1004':对象'_Worksheet'的方法'范围'失败了”
尽管尝试了我的范围定义的每个语法组合,但我无法弄清楚如何获得我想要做的工作。任何帮助将不胜感激!
答案 0 :(得分:4)
根据OP的要求,我正在将评论移至答案。
问题在于
行destSheet.range("A6:K & lMaxRows").ClearContents
需要更改为:
destSheet.range("A6:K" & lMaxRows).ClearContents
请注意结束引号已移动。假设lMaxRows为500,这使得范围参数“A6:K500”,然后VBA可以将其评估为范围对象。之前,它是文字字符串A6:KlMaxRows,VBA 无法评估范围对象,因为变量是字符串的一部分。