柔軟に働き方を選ぶ時代に必要なこと >>

先程もお聞きし、その続き的な質問になってしまうのですが、
A列    B列   C列  D列  E列  F列    G列
1 2/10  20              リンゴ 
2 2/15   40              人参
3 2/16   30              ぶどう
4 2/18  50              なし
5 2/20   60              人参
6 2/21   70                みかん
7 2/22   80               ぶどう
上のような表があるときに、EXCELのマクロを用いて処理をしたいですが、構文が不明です。
F列に"人参"があったら、同じ行のB列のすぐ下の"30"から、すぐ上の"40"を減算しG列に入力させることについては、お陰様で以下の構文で解決いたしました。

Sub Sample1()
Dim i As Long
For i = 1 To Cells(Rows.Count, "F").End(xlUp).Row
If Cells(i, "F") = "人参" Then
Cells(i, "G") = Cells(i + 1, "B") - Cells(i, "B")
End If
Next i
End Sub

今回は、"人参"または"みかん"が対象になった場合を教えて頂きたいです。
別な行に"人参"または"みかん"がF列にあるたびに繰返し同じ行のB列のすぐ下のセルの値から、すぐ上のセルの値を減算しG列に入力を繰返し"人参"または"みかん"が現れるたびに処理させたいのですが、どなたか、ご教授願います。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

Sub Sample1()


Dim i As Long
For i = 1 To Cells(Rows.Count, "F").End(xlUp).Row
If Cells(i, "F") = "人参" Or Cells(i, "F") = "みかん" Then
Cells(i, "G") = Cells(i + 1, "B") - Cells(i, "B")
End If
Next i
End Sub
    • good
    • 2
この回答へのお礼

早々のご回答ありがとうございました。
早速試させて頂きました。
思った通りの結果が出ています。助かりました。
お世話になりました。

お礼日時:2017/02/23 19:43

こんばんは!



すでに回答は出ていますので、参考程度で・・・

Sub Sample2()
Dim i As Long, myStr As String
myStr = "人参,みかん" '←ココで検索データを増やすことも可能//
For i = 1 To Cells(Rows.Count, "F").End(xlUp).Row
If InStr(myStr, Cells(i, "F")) > 0 Then
Cells(i, "G") = Cells(i + 1, "B") - Cells(i, "B")
End If
Next i
End Sub

こんな感じでも大丈夫だと思います。m(_ _)m
    • good
    • 0
この回答へのお礼

早速試させて頂きました。
思った通りの結果が出ています。助かりました。
今後の為に、検索データの増やし方も教えて頂き、
ありがとうございます。
お世話になりました。

お礼日時:2017/02/23 19:45

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング