プロが教えるわが家の防犯対策術!

For r = 12 To .Cells(Rows.Count, ”C").End(xlUp).Row
このコードで
.Cells(Rows.Count, ”C").End(xlUp).RowではC列最終行まで読み込みますが
例えば12行目から20行目までと指定することは出来ないのでしょうか
よろしくお願い致します。

質問者からの補足コメント

  • Cells(Rows.Count, ”C")とありましたので
    C列の指定がいるのかなと思ってました

    No.1の回答に寄せられた補足コメントです。 補足日時:2021/11/13 23:48

A 回答 (5件)

.Cells(Rows.Count, ”C").End(xlUp).Row


は単純にC列の最終行の数字であって、
それをこのケースではFor文の繰り返しの終わりの数として使っている、というるだけです。12固定なら12で構いません。

また、For r = という書き方は、単純にrという数字をループしているだけで、rowを表すものと捉えるかは使い方しだいです。
たとえば、C列から値を取り出すには、
Cells(r, 3) または Cells(r, "C")
などで、rowにr 、columnに取り出したいカラムを指定して初めて、rowを表すループになります。
    • good
    • 0

#4です


コードサンプルです
Sub test()
Dim r As Long
With ActiveSheet
For r = 12 To .Cells(Rows.Count, "C").End(xlUp).Row
If r >= 12 And r <= 20 Then
.Cells(r, "D").Value = r 'ダミー処理
Else
'13~最終行までの処理
End If
Next r
End With
End Sub
    • good
    • 0

こんにちは


既に回答が出ているものと思いますが、斜めから見ると
>例えば12行目から20行目までと指定することは出来ないのでしょうか

最終行までの(行数)ループで上記を指定する場合、変数 r の値で条件分岐をすれば、その範囲のみ対象にする事が出来ます。
実際に必要になるケースは こちらの場合の方が多いのでは無いかと思いますので、参考として、、
    • good
    • 0

すみません。

終わりの数は
20固定なら20で構いません
の誤記です。
    • good
    • 0

For r = 12 To 20


でいけますし、あるいはFor の中でif文でrが12以上、20以下のみに中の処理が行われる、などとしても良いです。
この回答への補足あり
    • good
    • 0
この回答へのお礼

ありがとうございます。
難しく考えすぎていました、単純で良かったのですね

お礼日時:2021/11/13 23:41

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