1

AutoFill Down 関数を使用するコードを作成しようとしています。列 A のそれぞれの行にテキスト/値がある限り、列 B に典型的な 1、2、3、4 などを入力したいと思います。現在、私のコードはセル B50 まで入力するように配線されています。何があっても、たとえば、列 A にセル A7 までのデータしかない場合は、それほど下に貼り付けたくありません。理想的には、次の変数を使用したいと思います -- rownum = Range("A1").End(xlDown).Row -- テキスト/値を持つ列 A のセルの数をカウントし、それを使用して " B50」は、以下の行の指定にあります。それを実現するための適切な構文がわからないだけです。ここに私がこれまでに持っているコードがあります。

ActiveCell.FormulaR1C1 = "1"
Range("B2").Select
ActiveCell.FormulaR1C1 = "2"
Range("A1").Select
Range("B1:B2").Select
Selection.AutoFill Destination:=Range("B1:B50"), Type:=xlFillDefault

私を助けてくれた人に前もって感謝します!私はマクロと VBA コードの両方の初心者ですが、皆さんの知識の多さに驚かされます。

イーコン

4

2 に答える 2

4

コードで何も選択しない方がはるかに良いでしょう。列 A の内容に基づいて列 B の行に番号を付けたい場合は、次のようにします。

Sub NumberColumn()
    Dim ws As Worksheet
    Dim lastRow As Long

    Set ws = ThisWorkbook.Sheets("Sheet1")

    ' get the last row from column A that has a value
    lastRow = ws.Range("A" & ws.Rows.Count).End(xlUp).Row

    ' use the last row to determine how far down to extend the formula
    ws.Range("B1:B" & lastRow).Formula = "=row()"
End Sub
于 2013-06-24T21:47:57.457 に答える
1

文字列を必要とせずに使用する非常に単純なオプション:

Selection.AutoFill Destination:=Range("A2:A" & Cells(Rows.Count, "B").End(xlUp).Row)

列の行数をコピーする場合も同様です。

Range("A2:A" & Cells(Rows.Count, "B").End(xlUp).Row).Select
Selection.Copy
于 2013-12-17T14:42:50.757 に答える