[英]How to select a range of cells using two variables in VBA
我想使用:
Set rng1 = .Range("A1")
Set rng2 = .Range("C3")
如本链接所述。 OP 将单元格 A1 和单元格 C3 作为两个单独的单元格范围。 他询问如何更改范围,以便它们之间的所有单元格也包含在一个新的更大范围内。 我的问题类似,但我的单元格范围会随着每个新场景而变化。 示例 #1 单元格 D1 中的开始日期和单元格 Y1 中的结束日期,新范围是 D1:Y1; 或示例 #2 在单元格 B1 中的开始日期和在单元格 AZ1 中的结束日期,新范围是 B1:AZ1。 如何更改上面的代码,以便可以使用变量而不是静态范围?
我不确定我是否正确理解了这个问题。 因此,请查看以下内容,如果这能解决您的“问题”,请告诉我:
Option Explicit
Public Sub tmpTest()
Dim rng1 As Range
Dim rng2 As Range
Dim rngComposite As Range
With ThisWorkbook.Worksheets(1)
Set rng1 = .Range("A1")
Set rng2 = .Range("C3")
Set rngComposite = .Range(rng1, rng2)
Debug.Print rngComposite.Address
End With
End Sub
本质上,范围.Range(rng1, rng2)
与基础范围一样动态,并且每次rng1
或rng2
更改时都会更改。
这是一个使用字符串构建复合范围的蛮力解决方案:
rngTxt1 = Cells(Cost_Row, Cost_PnCol).Address(RowAbsolute:=False, columnabsolute:=False)
rngTxt2 = Cells(Cost_LastRow, Cost_PnCol).Address(RowAbsolute:=False, columnabsolute:=False)
Worksheets(Cost_SheetName).Range(rngTxt1 & ":" & rngTxt2).ClearFormats
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.