Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


11025 / 13644 ツリー ←次へ | 前へ→

【18572】空白セルに上のセルをコピー totori 04/9/29(水) 22:57 質問[未読]
【18575】Re:空白セルに上のセルをコピー ちゃっぴ 04/9/29(水) 23:27 回答[未読]
【18589】Re:空白セルに上のセルをコピー Jaka 04/9/30(木) 17:18 回答[未読]
【18591】Re:空白セルに上のセルをコピー カド 04/9/30(木) 18:00 回答[未読]
【18592】Re:空白セルに上のセルをコピー Asaki 04/9/30(木) 18:19 回答[未読]
【18598】Re:空白セルに上のセルをコピー totori 04/9/30(木) 22:21 お礼[未読]

【18572】空白セルに上のセルをコピー
質問  totori  - 04/9/29(水) 22:57 -

引用なし
パスワード
   最近VBAに興味を持ち勉強し始めた初心者です。

データ入力をしていて同じ内容のセルは空欄で飛ばして入力している
のですが後でまとめてコピーするのにVBAを使いたいです。
Do Loopを使えばいいのでしょうか良くわかりません。

具体的には、
 A    B   C  
1購入者 商品名 個数
2乙さん ケーブル 3
3丙さん      4
4乙さん マウス  1
5    消しゴム 2
6    鉛筆   3
7    クリップ 2
             を

 A    B   C  
1購入者 商品名 個数
2乙さん ケーブル 3
3丙さん ケーブル 4
4乙さん マウス  1
5乙さん 消しゴム 2
6乙さん 鉛筆   3 
7乙さん クリップ 2
と変換させたいです。
よろしくお願いします。

【18575】Re:空白セルに上のセルをコピー
回答  ちゃっぴ  - 04/9/29(水) 23:27 -

引用なし
パスワード
   やり方はいろいろあるかとは思いますが・・・
コピーした後、列ごとにセルを総ループし、空白セルがあれば、
前の値を入れるという風にするのが簡単では?
(初心者とのことなので・・・)

それじゃ遅いということなら、配列の導入をご検討ください。

【18589】Re:空白セルに上のセルをコピー
回答  Jaka  - 04/9/30(木) 17:18 -

引用なし
パスワード
   こんにちは。

例えば例題だとA4セルを選択後、ポインタをA4セルの右下角に当てポインタが+になったところでWクリックすれば手動でも意外と楽にフィルできますよ。
これをコードにしてループさせてみました。
因みにA4の下何も無い場合、基準がわかりませんからB列の最終行としました。

Sub njj()
  RS = Range("A1").End(xlDown).Row
  Do Until RE = 65536
    RE = Range("A" & RS).End(xlDown).Row
    If RE <> 65536 Then
     Range("A" & RS).AutoFill Destination:=Range("A" & RS & ":A" & RE - 1)
     RS = RE
    ElseIf RS <> Range("B65536").End(xlUp).Row Then
     REb = Range("B65536").End(xlUp).Row
     Range("A" & RS).AutoFill Destination:=Range("A" & RS & ":A" & REb)
    End If
  Loop
End Sub

【18591】Re:空白セルに上のセルをコピー
回答  カド  - 04/9/30(木) 18:00 -

引用なし
パスワード
   ▼totori さん こんにちは。

最近ようやくこの辺の処理方法がわかって来ました。

処理したい範囲を選択して実行してください。

Sub aaa()

  For Each s In Selection
    If s = "" Then
      s.Value = s.Offset(-1, 0)
    End If
  Next

End Sub

【18592】Re:空白セルに上のセルをコピー
回答  Asaki  - 04/9/30(木) 18:19 -

引用なし
パスワード
   こんにちは。

ジャンプの機能を利用すると↓こんな感じでしょうか。

Sub test()
On Error Resume Next
  With Cells(1, 1).CurrentRegion
    .SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
    .Value = .Value
  End With
End Sub

【18598】Re:空白セルに上のセルをコピー
お礼  totori  - 04/9/30(木) 22:21 -

引用なし
パスワード
   皆様

カドさんの方法で無事うまくいきました。
Do loop を使うものだと先入観があったのですが色々な
アプローチがあるものなんですね。
勉強になりました。ありがとうございました。

11025 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free