选择一个可变范围以删除数据.每次运行宏时,范围可能会发生变化


Range("A1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(0, 3).Select
Dim Q As String

Q = ActiveCell.Address

Range(" Q:D10438").Select
Selection.ClearContents

变量Q取活动单元格的值,但我无法将其包括在范围内

变量不能包含在引号中。此外,您应该避免使用Select。一个更简单的版本是:

Dim Q As String
Q = Range("A1").End(xlDown).Offset(0, 3).Address
Range(Q & ":D10438").ClearContents

范围对象

  • 如何避免使用Select

  • 当定义两个单元格的范围时,Range object"允许"我们使用单元格范围对象或单元格范围地址或它们的混合:

    Dim rng as range
    Set rng = Range("A1","D4")
    Set rng = Range(Range("A1"), Range("D4"))
    ' Mix
    Set rng = Range("A1", Range("D4"))
    Set rng = Range(Range("A1"), "D4")
    

    获取范围:

    $A$1:$D$4
    
  • 我们可以将第二个"混合解决方案"应用于问题:

    ' First cell range
    Range("A1").End(xlDown).Offset(0, 3)
    ' Second cell address
    "D10438"
    

    得到结果:

    Range(Range("A1").End(xlDown).Offset(0, 3), "D10438").ClearContents
    

最新更新