電子書籍の厳選無料作品が豊富!

【やりたい事】
毎回、最終行が変わる、表のA2からA列最終行のデータが入っている所までの件数を数えたいです
カウンタ関数にて数えたいです。他、関数でもOK

最終行は、毎回、変わります(毎回、新しい表を作るコードの一部です)

例=COUNTA(A2:A10) この場合は、A10行が最終行です

最終行は、定義しています Range(Cells(2, 1), Cells(LASTROW, 1))
名前は、LASTROWです。動きます。

以下のとおり、考えましたが、数字の2をかえしてしまいます


【考えたコード:常に2を返します】
Range(Cells(2, 13), Cells(LASTROW, 13)).Formula2 = "=trim(h2)"

ご存じの方、教えて下さい

A 回答 (5件)

お礼を見ました。


質問に返された例では理由もなくA2セルからはなくA4セルからデータとして扱うように変更されていますが、気にしない。

自分なら Endプロパティを使って
 Range(Selection, Selection.End(xlDown)).Select 
こんな感じに入力範囲を拾って使うかな。

要は、Ctrl+↓ の操作です。(このコードは Shift+Ctrl+↓)

Endプロパティを使う前に
 Range("A4").Select
のように1つ目のデータが入力されているA4セルを指定しておいてください。
それでデータの範囲を指定できます。
    • good
    • 0
この回答へのお礼

お返事ありがとうございます
突然、A2からA4へ変更となり、すいませんでした

ヒントになりました。試してみたいと思います
ありがとうございます

お礼日時:2024/08/01 21:32

データはお礼欄に記載されたとおりとします。

さらに1~3行目までは毎回同一で、1つ目の表は4行目から始まり途中の空白行はないものとします。

関数をマクロで使うなら、
j = WorksheetFunction.Match("", Range("A4:A100000"), 0) - 1
ではいかがでしょうか。

A列
1行
2行 =COUNTA(A3:A6)⇒答え3
3行 入力日  名前
4行 1/1   Aさん
5行 1/2   Bさん
6行 1/3   Cさん
7行
8行
9行 入力日  名前
10行2/1   Dさん
11行2/2   Eさん
12行2/3   Fさん
    • good
    • 0

=COUNTA(A:A)-COUNTA(A1)



A1が空なら、
=COUNTA(A:A)
だけでもOKです。

A1に確実に何かが入るのなら
=COUNTA(A:A)-1
でもOKです。
    • good
    • 1
この回答へのお礼

大変、申し訳ございません
説明が間違っていました
表が2つあり
1つ目の表の、件数をカウンタ件数にて
数えたいです。以下の例は3件です。
表が毎回、毎回、変わるのでA6の部分を
表の最終行にして、変化する1つ目の表の
件数を数えたいです

なお、表は毎回マクロにて作成します
ご指摘ありましたら、宜しくお願いします

A列
1行
2行 =COUNTA(A3:A6)⇒答え3
3行 入力日  名前
4行 1/1   Aさん
5行 1/2   Bさん
6行 1/3   Cさん
7行
8行
9行 入力日  名前
10行2/1   Dさん
11行2/2   Eさん
12行2/3   Fさん

お礼日時:2024/08/01 20:26

こんにちは



例示のコードを見ると、なさりたいことがさっぱりわからなくなりますが・・

よくわかりませんけれど・・・
仮に、関数の場合で
 =COUNTA(A2:A1048576)
みたいなことをなさりたいのなら、
 n = Application.CountA(Range("A2").Resize(Rows.Count - 1))
で、同じ結果が得られると思います。
    • good
    • 1
この回答へのお礼

大変、申し訳ございません
説明が間違っていました
表が2つあり
1つ目の表の、件数をカウンタ件数にて
数えたいです。以下の例は3件です。
表が毎回、毎回、変わるのでA6の部分を
表の最終行にして、変化する1つ目の表の
件数を数えたいです

なお、表は毎回マクロにて作成します
ご指摘ありましたら、宜しくお願いします

A列
1行
2行 =COUNTA(A3:A6)⇒答え3
3行 入力日  名前
4行 1/1   Aさん
5行 1/2   Bさん
6行 1/3   Cさん
7行
8行
9行 入力日  名前
10行2/1   Dさん
11行2/2   Eさん
12行2/3   Fさん

お礼日時:2024/08/01 20:26

ええと、こういう考え方を知ってますか?


 999=1000-1

・・・

A列全体を対象
 =COUNTA(A:A)
A1セルだけを対象
 =COUNTA(A1)

 ('ω') あとは分かるよね。

CPUに余裕があるなら普通にこういう処理で充分です。
    • good
    • 1
この回答へのお礼

大変、申し訳ございません
説明が間違っていました
表が2つあり
1つ目の表の、件数をカウンタ件数にて
数えたいです。以下の例は3件です。
表が毎回、毎回、変わるのでA6の部分を
表の最終行にして、変化する1つ目の表の
件数を数えたいです

なお、表は毎回マクロにて作成します
ご指摘ありましたら、宜しくお願いします

A列
1行
2行 =COUNTA(A3:A6)⇒答え3
3行 入力日  名前
4行 1/1   Aさん
5行 1/2   Bさん
6行 1/3   Cさん
7行
8行
9行 入力日  名前
10行2/1   Dさん
11行2/2   Eさん
12行2/3   Fさん

お礼日時:2024/08/01 20:26

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A