簡體   English   中英

Excel VBA - 選擇動態單元格范圍

[英]Excel VBA - select a dynamic cell range

我希望能夠動態選擇一系列單元格(標題行),其中行為1但列為1到最后一列,其中“A”是第一列,其中“M”是最后一列柱。 我知道如何找到最后一列,但我不知道如何修改下面的范圍來輸入第一列和最后一列為“A”和“M”。

 Range("A1:M1").Select

如果要選擇包含所有標題單元格的變量范圍:

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

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

我認為這是最簡單的方法。

所以它取決於你想如何選擇增量器,但這應該工作:

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

我最喜歡使用這種方法,它會自動選擇第一列到最后一列使用。 但是,如果第一行中的最后一個單元格或第一列中的最后一個單元格為空,則此代碼將無法正確計算。 檢查鏈接以了解其他方法以動態選擇單元格范圍。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM