• ベストアンサー

文字を検索し、同行の離れたセルに単語と数値を反映

B列から「○○」という文字を検索し、 (1)該当した行のIセルに「小計」と入力 (2)Jセルに、Cセルの数値に「個」を付けたものを表示させる という作業を延々と繰り返しています。 該当する行はランダムにあります。 並べ替えが出来ない状態なので、VBAなのかな??と思うのですが、 マクロの記録ぐらいしかやったことがなくて…。 良い方法があれば教えて下さい。 お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • phoenix343
  • ベストアンサー率15% (296/1946)
回答No.3

#2です。 小計はIでしたね。#2の例で言うと、A列に書き込まれてしまうから気をつけてね。

ricky223
質問者

お礼

できました! ありがとうございました!! でも全然解読できなくて、自分の無力ぶりが沁みてきます・・・ f^_^;

ricky223
質問者

補足

ご回答ありがとうございます。 #2の 「Set rgeA = wkA.Cells(lrow, 1) 」を「Set rgeI = wkA.Cells(lrow, 9) 」に 「rgeA.Value = "小計"」を「rgeI.Value = "小計"」に 書き換えればよいのでしょうか?

その他の回答 (2)

  • phoenix343
  • ベストアンサー率15% (296/1946)
回答No.2

次のような感じかな? #なおマクロに貼り付けるときは全角スペースを置換してね。 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)
回答No.1

ご質問の回答になるか疑問な所もありますが・・・ Iセルに =IF(B1=○○,"小計","") Jセルに =IF(B1=○○,C,"") セルの書式設定で表示形式をユーザー定義 #個 とする でいかがでしょうか?

ricky223
質問者

補足

ご回答ありがとうございます。 ごめんなさい、書き忘れていましたが、 I, J列とも、データが入力されている行もあるんです。 なので、すべてのセルに関数の貼り付けが出来ないんです・・・。