清晰的细胞范围

时间:2014-02-19 18:31:51

标签: excel vba

我是VBA的新手并试图运行一个非常简单的子程序,但是我遇到了错误。我想清除从K7到无限数量的行和列V的一系列单元格。以下是代码:

Sub UpdateMatrix()

    Worksheets("Prioritization Matrix").Range("K7", Cells(Row.Count, 22)).ClearContents

End Sub

这是错误:

vba runtime error 424 object required

我见过的所有例子都让我相信这段代码应该有效,但事实并非如此。建议?

谢谢!

1 个答案:

答案 0 :(得分:0)

  • 首先,如果您从优先级矩阵以外的其他工作表运行代码,那么您创建的3d范围会失败,您需要引用Cell绝对,而不是相对。
  • 其次,Count适用于Rows,而非Row

    Worksheets("Prioritization Matrix").Range("K7", Worksheets("Prioritization Matrix").Cells(Worksheets("Prioritization Matrix").Rows.Count, 22)).ClearContents
    
  • 最后,您清理范围非常广泛,可以使用Used Range限制清算:

    Sub UpdateMatrix()
    Dim sht As Worksheet
    
    Set sht = Worksheets("Prioritization Matrix")
    
    Intersect(sht.Range("K7", sht.Cells(Rows.Count, 22)), sht.UsedRange).ClearContents
    
    End Sub