[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『空白セルに上の値をコピー(指定列のみ)』(MARU)
A列〜D列の空白セルの場合、上の値をコピーしていますが、 G列〜AV列の間で、一部のセルのみコピーしたいのですが そのような場合は、どうすればいいでしょうか? 対象列A,B,C,D,G,I,K,L,M,X,Y,Z,AA,AD,AE,AF,AG,AH,AI,AJ ,AK,AL,AN,AO,AP,AQ,AR,AS,AU,AV になります。
Windows("Data.xlsm").Activate Sheets("wk").Select '開始行 kairw1 = 2 '最終行 maturw1 = Range("A2").End(xlDown).Row For i1 = kairw1 To maturw1 For j1 = 1 To 4 With Cells(i1, j1) If .Value = "" Then .Value = .Offset(-1).Value End With Next j1 Next i1 宜しくお願いします。
< 使用 Excel:Excel2010、使用 OS:Windows7 >
オリジナルをご自身で作成されたものであればお分かりかと思いますが、対象列の
並びが不規則なので、j1の値の指定方法が面倒くさいです。
都度j1の値を判定して対象列以外の場合には空きチェックとコピーする処理を
飛ばす、というのもありかもしれませんが、汎用性に乏しいですしね。
もし対象列以外の列がいつも空きセルであれば、
For j1 = 1 To 4
のところを
For j1 = 1 To 22
とすることで、(処理速度の面を考慮しなければ)解決しそうですけど。。。
どなたか賢人の方、よろしくお願いいたします。
(ryopo^2) 2014/08/19(火) 12:41
ありがとうございます。 補足になります。 対象列以外の列は、値が入っております。 宜しくお願いします。 (MARU) 2014/08/19(火) 13:00
こんな感じで。 For i1 = kairw1 To maturw1 For Each c In Split("A,B,C,D,G,I,K,L,M,X,Y,Z,AA,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AN,AO,AP,AQ,AR,AS,AU,AV",",") With Cells(i1, c) If .Value = "" Then .Value = .Offset(-1).Value End With Next Next (Mook) 2014/08/19(火) 15:42
ありがとうございました。 実行時エラー424 オブジェクトが必要です のメッセージを返します。 下記のように記述しております。 宜しくお願いします。 Dim kairw1 As Integer Dim maturw1 As Long Dim i1 As Long Dim c1 As Range
Windows("Data.xlsm").Activate Sheets("wk").Select kairw1 = 2 maturw1 = Range("A2").End(xlDown).Row
For i1 = kairw1 To maturw1 For Each c1 In Split ("A,B,C,D,G,I,K,L,M,W,X,Y,Z,AA,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AN,AO,AP,AQ,AR,AS,AU,AV", ",") With Cells(i1, c1) If .Value = "" Then .Value = .Offset(-1).Value End With Next Next
(MARU) 2014/08/19(火) 17:03
cl は Range でなく、Variant です。 Split が一行になっていないように見えるのも気になりますが…。 (Mook) 2014/08/19(火) 21:24
Mookさんありがとうございます。 Variantに修正後、問題なく処理できました。 以後気をつけます。 ありがとうございました。 (MARU) 2014/08/20(水) 14:30
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.