首页 > 解决方案 > 选择一个可变范围来删除数据。每次宏运行时范围可能会有所不同

问题描述

   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 正在获取活动单元格的值,但我无法将其包含在范围内

标签: excelvbavariablesrange

解决方案


范围对象

  • 如何避免使用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
    

推荐阅读