Excel VBA 質問スレッド No.19 (解決済)

ループ処理について

投稿者 : まるもん     投稿日時 : 2017/03/21(Tue) 16:46:59     OS : 未指定     EXCEL : Excel 2010
はじめまして。よろしくお願いします。

1.A列に数字データ(14文字)を読み込みます。データが何行あるかはその時により
違います。

2.B列にA列のデータの右側の6文字を削除して表示します。

3.処理をA列にデータがある行まで行いたい。

上記から、以下のようなVBAを作成しました。

--------------------------------------------------------------
  Dim line1 As Long
  line1 = 1
  Do While Cells(line1, 1).Value <> ""
  ActiveCell.FormulaR1C1 = "=LEFT(RC[-1],LEN(RC[-1])-6)"
  line1 = line1 + 1
  Loop
--------------------------------------------------------------

実行すると、1行目はLEFT関数が入るのですが、2行目以降が入らず
処理が終了します。

どこを修正すればよいかをご教授願いたく、投稿しました。

よろしくお願い致します。

[返信 1] Re : ループ処理について
投稿者 : 管理人     投稿日時 : 2017/03/21(Tue) 20:01:57
1行目しか処理されないのは、
ループ内で数式を設定している ActiveCell が
同じセルを指したままになっているからです。

B列に数式を設定したいのであれば ActiveCell ではなく、
Cells(line1, 2) としてください。


■修正前
ActiveCell.FormulaR1C1 = "=LEFT(RC[-1],LEN(RC[-1])-6)"

■修正後
Cells(line1, 2).FormulaR1C1 = "=LEFT(RC[-1],LEN(RC[-1])-6)"

[返信 2] Re : ループ処理について
投稿者 : まるもん     投稿日時 : 2017/03/22(Wed) 09:33:29
管理人様

ご指摘、ありがとうございます。

>ループ内で数式を設定している ActiveCell が
>同じセルを指したままになっているからです。

確認をしているようで、目に入っていませんでした。
お陰様で、ループ処理ができるようになりました。

初心者なので、またお世話になると思いますが、その時は
よろしくお願い致します。

ありがとうございました。

スポンサード リンク
 
 
当掲示板について
返信入力フォーム
お 名 前  :
内  容   :
ステータス  : この質問を解決済みにする

認証コード  :
        キャプチャ画像


( 処理日時 : 2019-08-26 09:43:09 )

Page
Top