Excel的VBA - 选择一个动态的单元格范围(Excel VBA - select a dyn

2019-06-27 05:57发布

我希望能够动态地选择的单元格范围(标题行),其中,所述行是1,但该列与为1至最后一列,其中“A”是第一列,并且其中“M”是最后的柱。 我知道如何找到最后一列,但我不知道如何修改以下范围内输入第一个和最后一栏为“A”和“M”。

 Range("A1:M1").Select

Answer 1:

如果你想选择包含所有的头单元的可变范围:

Dim sht as WorkSheet
Set sht = This Workbook.Sheets("Data")

'Range(Cells(1,1),Cells(1,Columns.Count).End(xlToLeft)).Select '<<< NOT ROBUST

sht.Range(sht.Cells(1,1),sht.Cells(1,Columns.Count).End(xlToLeft)).Select

......只要有该行上没有其他内容。

编辑:更新,以强调,当使用Range(Cells(...), Cells(...))这是资格都好的做法RangeCells与工作参考。



Answer 2:

sub selectVar ()
    dim x,y as integer
    let srange = "A" & x & ":" & "m" & y
    range(srange).select
end sub

我认为这是最简单的方法。



Answer 3:

因此,它取决于你想如何挑选增量,但这应该工作:

Range("A1:" & Cells(1, i).Address).Select

其中i是代表要选择(1 = A,2 = B,等等)的列中的变量。 你想通过列字母而不是这样做呢? 如果是的话,我们可以调整:)

如果你想一开始是动态的,以及,你可以试试这个:

Sub SelectCols()

    Dim Col1 As Integer
    Dim Col2 As Integer

    Col1 = 2
    Col2 = 4

    Range(Cells(1, Col1), Cells(1, Col2)).Select

End Sub


Answer 4:

我想用这个方法最,它会自动选择第一列到最后一列中使用。 但是,如果第一行或第一列中的最后一个单元格中的最后一个单元格是空的,这个代码将不能正确计算。 检查链接的其他方法来动态地选择单元格区域。

Sub DynamicRange()
'Best used when first column has value on last row and first row has a value in the last column

Dim sht As Worksheet
Dim LastRow As Long
Dim LastColumn As Long
Dim StartCell As Range

Set sht = Worksheets("Sheet1")
Set StartCell = Range("A1")

'Find Last Row and Column
  LastRow = sht.Cells(sht.Rows.Count, StartCell.Column).End(xlUp).Row
  LastColumn = sht.Cells(StartCell.Row, sht.Columns.Count).End(xlToLeft).Column

'Select Range
  sht.Range(StartCell, sht.Cells(LastRow, LastColumn)).Select

End Sub


文章来源: Excel VBA - select a dynamic cell range