[[20210926002647]] 『転記 VBA』(ゆう) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『転記 VBA』(ゆう)

お世話になります。
sheet1の3列に〇〇の表示があるとき、sheet1の9列にある数字をsheet2の8列2行から下方に転記したいのですが、

Dim ws As Worksheet
Dim i As Long

Set ws = Worksheets(1)

For i = 1 To ws.Cells(Rows.Count, 3).End(xlUp).Row

If ws.Cells(i, 3) = "〇〇" And ws.Cells(i, 9) <> "0" Then
Cells(i, 8).Value = ws.Cells(i, 9).Value

End If
Next

のコードで組むと転記されたときにsheet2の8列2行目に転記されず、
8列目20行目に転記されます。
わかりづらく申し訳ございませんが、何かアドバイスがあればお願いいたします。

< 使用 Excel:unknown、使用 OS:unknown >


単純に20行目で、条件が成立したから・・・・。
(疑問符) 2021/09/26(日) 00:48

 Cells(i, 8).Value = ws.Cells(i, 9).Value
 なので、同じ行(i行目)に出力されます。
 Sheet2に書き出す行は、Sheet1の行を表す変数 i とは別の変数を用意しないといけません 
(´・ω・`) 2021/09/26(日) 00:58

これでいいのかな

Dim ws As Worksheet
Dim i As Long
Dim j As Long
Set ws = Worksheets(1)

j = 1
For i = 1 To ws.Cells(Rows.Count, 3).End(xlUp).Row

If ws.Cells(i, 3) = "〇〇" And ws.Cells(i, 9) <> "0" Then
j = j + 1
Cells(j, 8).Value = ws.Cells(i, 9).Value
End If
Next
(よっちん) 2021/09/26(日) 08:07


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.