人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

抜けがあるデータを埋めるためにうまくコピー&貼り付けしたい
Excelのファイルで今、空白セルを含めA列に5万行ぐらいのデータがあり、4万9900行ぐらいは空白セルなのですが。

起点となります4行目の文字列以外は、特に規則性もなく例えば25行目、92行目、…49911行目に、文字列が入っているとします。
まず、起点の4行目のデータをコピーしまして。そこから下の空白セルへ、コピーしたデータをどんどん貼り付けていきます。
すると、25行目には空白セルではない文字列があります。
ここで、25行目のデータをコピーし。26行目からは、4行目ではなく25行目のデータを、26行目以下の空白セルに貼り付けていきす。
そして、次の《空白セルではない文字列=92行目》に来たら、今度は92行目のデータをコピーし、また93行目以下の空白セルにデータを貼り付けて…

という流れを繰り返しまして。最後の49911行目の文字列の下は、もう空白セルしかありませんので。
50000行を区切りに、そこまで空白セルに文字列を1セルずつ貼り付けて完了する、というデータ処理を。
効率的な方法で行いたいと考えております。宜しくお願いします。

●質問者: moon-fondu
●カテゴリ:コンピュータ 学習・教育
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● a-kuma3
●1500ポイント ベストアンサー

下記のマクロを標準モジュールにはりつけて、set_blank_cell サブルーチンを実行してください。

Function is_blank_cell(c)
 is_blank_cell = IsEmpty(c) Or c.Value = ""
End Function

Sub set_blank_cell()
 max_row = 50000
 target_col = 1  ' A列
 src_row = 4
 ActiveSheet.EnableCalculation = False
 For r = 5 To max_row
 If is_blank_cell(Cells(r, target_col)) Then
 Cells(r, target_col).Value = Cells(src_row, target_col).Value
 Else
 src_row = r
 End If
 DoEvents
 Next
 ActiveSheet.EnableCalculation = True
End Sub

そこそこ時間がかかるとは思いますが、一時間はかからないと思います。


moon-fonduさんのコメント
すごいです、1分もかかりませんでした! ありがとうございました(^^♪
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ