私はこれを数回実行しました。私はそれを回避することができますが、私はそれが理由や簡単な回避策があるかどうかを判断しようとしています。range.columns(n)で定義した後に範囲をループすることができません
私は今、私は、その範囲の最初の列に各セルを見てみたい、と私はこれをやろうとしている
Set rngAll = range("A8",cells(usedrange.rows.count,usedrange.columns.count))
と私のすべてのデータが含まれている範囲を定義しました:
Set rngUserIDs = rngAll.columns(1)
For each rngCell in rngUserIDs
Do Something
next rngCell
I代わりrngUserIDs
の全体と一致するように自身を設定rngCell
rngUserIDs
における個々のセル、見てのコードを実行します。 rngUserIDs
= A8:A1000の場合は、A8からループバックする代わりに、rngCell
= A8:A1000となり、何かをしてからループを終了します。
set rngUserIDs = Range("A8","A" & range("A" & rows.count).end(xlup).row)
For Each rngCell in rngUserIDs
Do Something
next rngCell
それは順番に各セルを見て、完璧に動作します:
は私のような、rngUserIDs、他の方法を設定した場合。
この現象が発生する理由はありますか?私はそれについて何かできることはありますか?はい、私はそれを回避することができますが、私はrngAll
の最初の列を使うことができれば、さまざまな構造上の理由から便利です。
私がループでやっていることの1つは、その列の空白のセルを探していることです。データの終わりに空白がある可能性があるので、他の列にデータが残っている間に、その列で '.end(xlup)'を使用すると誤った結果になる可能性があります。 – Werrf
Findを使用して、最後に使用された行を任意の列で検索し、コードをその縮小範囲に制限することができます。 – SJR