是否可以根据单元格中给出的值在VBA中定义范围?
例如,我有一个包含四列和不断变化的行数的数据集 . 我在单元格 F2 中有行数 . 假设单元格 F2 指示行数是 385 ,那么我能够 Range("A1:D385").Select ,但我希望选择最后一个单元格依赖于单元格 F2 .
F2
385
Range("A1:D385").Select
因此,如果我将 F2 更改为 50 ,那么下次运行宏时,将选择 A1:D50 ,但是因为我想出来了 .
50
A1:D50
最合适的方法就是这样
Sub getRng() Dim Cval As Variant Dim Rng1 As Range Cval = ActiveSheet.Range("F2").Value Set Rng1 = ActiveSheet.Range("A1:D" & Cval) End Sub
这会将 Rng1 设置为稍后可以在另一个函数中使用的对象
Rng1
如
Rng1.Select
要么
Rng1.Copy
这就是你要找的东西:
Dim lastRow As Integer With ThisWorkbook.Sheets(1) lastRow = .Cells(.Rows.Count, "F").End(xlUp).row .range("A1:D" & lastRow).Select End With
代码从下到上查找列F中的第一个非空单元格 . 类似于选择F列中的最后一个单元格并按Ctrl向上箭头 .
2 回答
最合适的方法就是这样
这会将
Rng1
设置为稍后可以在另一个函数中使用的对象如
Rng1.Select
要么
Rng1.Copy
这就是你要找的东西:
代码从下到上查找列F中的第一个非空单元格 . 类似于选择F列中的最后一个单元格并按Ctrl向上箭头 .