是否可以根据单元格中给出的值在VBA中定义范围?
例如,我有一个包含四列和不断变化的行数的数据集。我在单元格F2
中有行数。假设单元格F2
表示行数为385
,那么我可以Range("A1:D385").Select
,但我希望最后一个单元格的选择依赖于单元格F2
。
因此,如果我将F2
更改为50
,那么下次运行宏时,A1:D50
将会被选中,但由于我是VBA的新手,我无法想象它出来了。
答案 0 :(得分:1)
最合适的方法就是这样
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.Select
或
Rng1.Copy
答案 1 :(得分:1)
这就是你要找的东西:
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 + 向上箭头。