
F列にナンバー
G列にナンバー
H列に都道府県
この状態で、3個飛ばしで転記をしたいのです。
下記のコードを作成しました。
Sub 転記()
Dim maxR As Long
Dim maxC As Long
maxR = Cells(Rows.Count, "F").End(xlUp).Row
maxC = Cells(7, Columns.Count).End(xlToLeft).Column
j = 8
For i = 8 To maxR
Range(Cells(j, "G"), Cells(j, maxC)).Copy Cells(i + 34, 7)
j = j + 3
Next i
End Sub
↓結果です。
2 青森県
5 秋田県
8 茨城県
11 埼玉県
14 神奈川県
17 石川県
20 長野県
23 愛知県
26 京都府
29 奈良県
32 島根県
8 茨城県
17 石川県
26 京都府
26 京都府
空白
8の茨城1
17の石川県
26の京都府
空白
26の京都府
3個飛ばしで転記はできましたが
下記の
空白
8の茨城1
17の石川県
26の京都府
空白
26の京都府
上記の余計なものが転記されます。
なぜこうなるのか分かりません。
お手数ですが、正しいコードをご教示いただけないでしょうか?
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
以下のコードで、空白行を除いて転記することができます。
Sub 転記()
Dim maxR As Long
Dim maxC As Long
Dim j As Long
Dim i As Long
scss
Copy code
maxR = Cells(Rows.Count, "F").End(xlUp).Row
maxC = Cells(7, Columns.Count).End(xlToLeft).Column
j = 8
For i = 8 To maxR Step 3
If Not IsEmpty(Cells(j, "F")) Then
Range(Cells(j, "G"), Cells(j, maxC)).Copy Cells(i + 34, 7)
End If
j = j + 3
Next i
End Sub
このコードでは、余計な空白行を取り除くために、Forループのステップに3を指定している行を取り出す前に、その行が空白かどうかをチェックしています。空白の場合はスキップし、空白でなければ転記を行うようにしています。
No.2
- 回答日時:
こんにちは
>上記の余計なものが転記されます。
>なぜこうなるのか分かりません。
以下は想像ですが・・・
一度転記してから、再度同じ処理を実行していませんか?
その場合は、最終行が53行目くらいまでになっていて、そこまでを3行おきにピックアップすることになります。
転記先を42行目からと固定にしているので、最終行を求めた際に41行目より大きければ、ダブって転記されることになると考えられます。
最終行を41行目以下になるように限定してあげれば良いのではないでしょうか?
あるいは、事前に42行目以降をクリアしておくなどでも宜しそうに思われます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAで、特定の文字より後を削除...
-
空白セルをとばして転記
-
VBAで重複データを確認したい
-
IIF関数の使い方
-
VBAで別のブックの値をVlookup...
-
オートフィルタをマクロで作成...
-
DataGridViewに空白がある場合...
-
【VBA】2つのシートの値を比較...
-
VBAを使って検索したセルをコピ...
-
VBA カスタムオーダーのあと...
-
VBA: 2列のリストボックスの2列...
-
vba 2つの条件が一致したら...
-
複数の列の値を結合して別の列...
-
VBAで、離れた複数の列に対して...
-
VBAのFind関数で結合セルを検索...
-
Excelで、あるセルの値に応じて...
-
Worksheets メソッドは失敗しま...
-
C# dataGridViewの値だけクリア
-
期限を超えた日付に警告のメッ...
-
【マクロ】実行時エラー '424':...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelで、あるセルの値に応じて...
-
Worksheets メソッドは失敗しま...
-
Cellsのかっこの中はどっちが行...
-
vba 2つの条件が一致したら...
-
【VBA】2つのシートの値を比較...
-
B列の最終行までA列をオート...
-
IIF関数の使い方
-
URLのリンク切れをマクロを使っ...
-
VBAを使って検索したセルをコピ...
-
DataGridViewに空白がある場合...
-
VBA 何かしら文字が入っていたら
-
VBAのFind関数で結合セルを検索...
-
複数の列の値を結合して別の列...
-
VBAでのリスト不一致抽出について
-
データグリッドビューの一番最...
-
VBAで指定範囲内の空白セルを左...
-
rowsとcolsの意味
-
【Excel VBA】 B列に特定の文字...
-
VBAで、特定の文字より後を削除...
-
エクセル 2つの表の並べ替え
おすすめ情報