Excel vba清除定期更改的一系列数据

时间:2017-01-04 16:19:10

标签: excel vba excel-vba range

我试图在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'的方法'范围'失败了”

尽管尝试了我的范围定义的每个语法组合,但我无法弄清楚如何获得我想要做的工作。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:4)

根据OP的要求,我正在将评论移至答案。

问题在于

destSheet.range("A6:K & lMaxRows").ClearContents

需要更改为:

destSheet.range("A6:K" & lMaxRows).ClearContents

请注意结束引号已移动。假设lMaxRows为500,这使得范围参数“A6:K500”,然后VBA可以将其评估为范围对象。之前,它是文字字符串A6:KlMaxRows,VBA 无法评估范围对象,因为变量是字符串的一部分。