11

セルの範囲(見出し行)を動的に選択できるようにしたいのですが、行は1ですが、列は1から最後の列で、「A」は最初の列、「M」は最後の列です。桁。最後の列を見つける方法は知っていますが、最初と最後の列を「A」と「M」として入力するように以下の範囲を変更する方法がわかりません。

 Range("A1:M1").Select
4

4 に答える 4

20

すべてのヘッダーセルを含む変数範囲を選択する場合:

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

于 2012-08-22T00:23:00.380 に答える
10
sub selectVar ()
    dim x,y as integer
    let srange = "A" & x & ":" & "m" & y
    range(srange).select
end sub

これが最も簡単な方法だと思います。

于 2013-11-02T08:18:33.810 に答える
4

したがって、インクリメントをどのように選択するかによって異なりますが、これは機能するはずです。

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
于 2012-08-22T00:14:01.663 に答える
0

私はこの方法を最もよく使用します。使用されている最初の列から最後の列までが自動的に選択されます。ただし、最初の行の最後のセルまたは最初の列の最後のセルが空の場合、このコードは正しく計算されません。セル範囲を動的に選択する他の方法については、リンクを確認してください。

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
于 2018-03-16T08:03:05.973 に答える