根据另一个单元格的值定义范围

时间:2015-09-22 12:48:41

标签: excel vba excel-vba

是否可以根据单元格中给出的值在VBA中定义范围?

例如,我有一个包含四列和不断变化的行数的数据集。我在单元格F2中有行数。假设单元格F2表示行数为385,那么我可以Range("A1:D385").Select,但我希望最后一个单元格的选择依赖于单元格F2

因此,如果我将F2更改为50,那么下次运行宏时,A1:D50将会被选中,但由于我是VBA的新手,我无法想象它出来了。

2 个答案:

答案 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 + 向上箭头