- ベストアンサー
文字を検索し、同行の離れたセルに単語と数値を反映
B列から「○○」という文字を検索し、 (1)該当した行のIセルに「小計」と入力 (2)Jセルに、Cセルの数値に「個」を付けたものを表示させる という作業を延々と繰り返しています。 該当する行はランダムにあります。 並べ替えが出来ない状態なので、VBAなのかな??と思うのですが、 マクロの記録ぐらいしかやったことがなくて…。 良い方法があれば教えて下さい。 お願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
#2です。 小計はIでしたね。#2の例で言うと、A列に書き込まれてしまうから気をつけてね。
その他の回答 (2)
- phoenix343
- ベストアンサー率15% (296/1946)
次のような感じかな? #なおマクロに貼り付けるときは全角スペースを置換してね。 Sub sample1() Dim wkA As Worksheet Dim rge As Range, rgeA As Range, rgeJ As Range Dim adr As String Dim lrow As Long Set wkA = ActiveSheet With wkA.Range("B:B") 'B列のみ検索 Set rge = .Find("○○", LookIn:=xlValues) If Not rge Is Nothing Then adr = rge.Address '最初の位置を登録 Do lrow = rge.Row '行取得 Set rgeA = wkA.Cells(lrow, 1) 'A列 Set rgeC = wkA.Cells(lrow, 3) 'C列 Set rgeJ = wkA.Cells(lrow, 10) 'J列 rgeA.Value = "小計" rgeJ.Value = CStr(rgeC.Value) + "個" Set rge = .FindNext(rge) '次を検索 'rgeが検索されないか,最初の位置に戻っていないか Loop While Not rge Is Nothing And rge.Address <> adr End If End With End Sub
- pbforce
- ベストアンサー率22% (379/1719)
ご質問の回答になるか疑問な所もありますが・・・ Iセルに =IF(B1=○○,"小計","") Jセルに =IF(B1=○○,C,"") セルの書式設定で表示形式をユーザー定義 #個 とする でいかがでしょうか?
補足
ご回答ありがとうございます。 ごめんなさい、書き忘れていましたが、 I, J列とも、データが入力されている行もあるんです。 なので、すべてのセルに関数の貼り付けが出来ないんです・・・。
お礼
できました! ありがとうございました!! でも全然解読できなくて、自分の無力ぶりが沁みてきます・・・ f^_^;
補足
ご回答ありがとうございます。 #2の 「Set rgeA = wkA.Cells(lrow, 1) 」を「Set rgeI = wkA.Cells(lrow, 9) 」に 「rgeA.Value = "小計"」を「rgeI.Value = "小計"」に 書き換えればよいのでしょうか?