Excel VBA質問箱 IV

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

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


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

【46638】列全体を検索し、検出したセルに一個上のセルの数値を置換したい マンモス 07/2/8(木) 18:19 質問[未読]
【46641】Re:列全体を検索し、検出したセルに一個上... かみちゃん 07/2/8(木) 20:42 発言[未読]
【46646】Re:列全体を検索し、検出したセルに一個上... マンモス 07/2/8(木) 22:56 お礼[未読]

【46638】列全体を検索し、検出したセルに一個上の...
質問  マンモス  - 07/2/8(木) 18:19 -

引用なし
パスワード
       A    B
1   86.4   100
2   90.2   57
3    0    0
4   102.3   0
5   52.6    0
6   6553.5  123.4
…   …   …


このようにAとBの2列でずっと下の行まで、ある数字が表示されているとします。
A列とB列の中で「0」と「6553.5」の数字を検索し、
検出したセルの数値を、ひとつ上の数値に置換したいのです。

例えばこの例ですと、A3の「0」をA2の「90.2」に置き換え
A6の「6553.5」をA5の「52.6」に置き換え、
B3からB5の「0」をB2の「57」に置き換えたいのです。

よろしくお願いします。

【46641】Re:列全体を検索し、検出したセルに一個...
発言  かみちゃん  - 07/2/8(木) 20:42 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>    A    B
>1   86.4   100
>2   90.2   57
>3    0    0
>4   102.3   0
>5   52.6    0
>6   6553.5  123.4
>…   …   …
>
>
>このようにAとBの2列でずっと下の行まで、ある数字が表示されているとします。
>A列とB列の中で「0」と「6553.5」の数字を検索し、
>検出したセルの数値を、ひとつ上の数値に置換したいのです。

Findメソッドを使って、以下のような感じでできると思います。

Sub Sample()
 Dim FR As Range
 
 With Range("A2:B10")
  Set FR = .Find(0, , xlValues, xlWhole)
  If Not FR Is Nothing Then
   Do
    FR.Value = FR.Offset(-1).Value
    Set FR = .FindNext(FR)
   Loop While Not FR Is Nothing
  End If
  
  Set FR = .Find(6553.5, , xlValues, xlWhole)
  If Not FR Is Nothing Then
   Do
    FR.Value = FR.Offset(-1).Value
    Set FR = .FindNext(FR)
   Loop While Not FR Is Nothing
  End If
 End With
End Sub

【46646】Re:列全体を検索し、検出したセルに一個...
お礼  マンモス  - 07/2/8(木) 22:56 -

引用なし
パスワード
   >かみちゃんさん

私が思っていた通りにマクロが動きました。
とても助かりました。
ありがとうございました。

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