-2

このサイトを検索しましたが、すべての答えがセルの行番号を見つけることを指しているようです。

A1列のデータの最後までの範囲を設定しようとしていAます。このスプレッドシートは毎週更新されるため、毎週データが追加されます。

行番号を見つけて、それを範囲コードと結び付けて、それが等しくなるようにするには、どのコードが機能するのだろうかと思っていました"A" + lastrownumber。または、列番号と行番号を一緒に提供するコードがある場合は? 正しい答えへのリンクを見逃した場合は、簡単なリンクでも問題ありません。投稿にお時間をいただき申し訳ありません。

これが私のコードです:

Sub NamedRange()

Dim Rng1 As Range
Dim newDate As Integer
Dim NumberOfRows As Range


Dim MyRange As Range
Dim lastRow2 As Range


lastRow2 = Range("A65536").End(xlUp).Row
'lastRow2 = LastRow

Set Rng1 = Sheets("Sheet1").Range(lastRow2)
ActiveWorkbook.Names.Add Name:="MyRange", RefersTo:=Rng1


Dim date1 As String
Dim dat As Date
Dim newPrice As Double


Set RgSales = Range("MyRange")
4

4 に答える 4

9

これは、列Aの最後に入力されたセルに対応する範囲オブジェクトを返します

Range("A:A").Find("*",Range("A1"),SearchDirection:=xlprevious)

行番号が必要な場合は、次を使用します。

Range("A:A").Find("*",Range("A1"),SearchDirection:=xlprevious).row
于 2012-07-12T14:23:36.160 に答える
2

これにより、特定の列の最後の行が得られます

= Cells(Activesheet.Rows.Count, ColumnNumber).End(xlUp).Row(@Gimp ごとに修正)

次に、データに追加するために使用できる参照があります-たとえば、列「A」を調べたい場合、それは列番号1になります。それを関数にフィードすると、Cells(NumberReturnedFromFunction,ColumnNumber)そのセルのアドレス指定に使用して追加できますアドレス.Addressのスタイルが必要な場合A1

于 2012-07-12T14:17:13.137 に答える
0

データにギャップがある場合は、xlDown の使用を避けたいので、次のようなもので問題ありません。イミディエイト ウィンドウで試してください。

Activesheet.range("A1:A" & Activesheet.Cells(Excel.Rows.Count, 1).End(Excel.xlUp).Row).select
于 2012-07-12T17:05:01.667 に答える
0

次のようなものを使用してみてください。

Activesheet.Cells(Activesheet.Rows.Count, "A").End(xlUp).Row

Activesheet を # のようなシートのインデックスSheets(1)またはシート名のような参照に置き換えることができますSheets("Sheet1")

を使用するRows.Countことで、最大行数を確認し、すべてのバージョンの Excel で互換性があるかどうかを確認します。

最後に、次のように範囲参照内でこれを使用できます。

Msgbox Sheets(1).Range("A" & Sheets(1).Cells(Sheets(1).Rows.Count, "A").End(xlUp).row).value

しかし、私はおそらくそれを次のように書き直します

With Sheets(1)
    Msgbox .Range("A" & .Cells(.Rows.Count, "A").End(xlUp).row).value
End With
于 2012-07-12T14:47:59.653 に答える