- ベストアンサー
特定の値がある行の数値をマイナスするマクロ
エクセルA1:k5000にデータがあります。 もし、E列にE03の表示があった場合、同じ行のI列とJ列の数字をマイナスに表示したいです。 E03の表示があるのはデータ数5000のうち10程度です。 データ処理の関係上、マクロが必要です。 どうぞよろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
sub sample1() if application.counta("E2:E5000") = 0 then exit sub application.screenupdating = false application.calculation = xlcalculationmanual range("E:E").autofilter field:=1, criteria1:="E03" range("L1") = -1 range("L1").copy range("I2:J5000").specialcells(xlcelltypevisible).pastespecial paste:=xlpasteall, operation:=xlmultiply activesheet.autofiltermode=false range("L1").clearcontents application.calculation = xlcalculationautomatic application.screenupdating = true end sub など。「E03」の文字の全角半角文字の違いを再確認してください。Eとe(大文字と小文字)の事ではないので注意してください。
その他の回答 (3)
- Wendy02
- ベストアンサー率57% (3570/6232)
>E03の表示があるのはデータ数5000のうち10程度です。 もし、そうなら、この程度でよいと思います。全角半角などの違いは、Findのオプションで加えればいいです。 Sub FindChar() Dim sFind As String Dim FirstAdd As String Dim c As Range sFind = "E03" Application.ScreenUpdating = False With ActiveSheet.Columns(5) Set c = .Find(What:=sFind, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByColumns, MatchByte:=False) If Not c Is Nothing Then FirstAdd = c.Address Do c.Offset(, 4).Value = -c.Offset(, 4).Value c.Offset(, 5).Value = -c.Offset(, 5).Value Set c = .FindNext(c) If c.Address = FirstAdd Then Exit Sub Loop Until c Is Nothing End If End With Application.ScreenUpdating = True End Sub
お礼
前回に続きありがとうございました。 今後ともどうぞよろしくお願いします。
- mu2011
- ベストアンサー率38% (1910/4994)
一例です。 前回分と併せてみました。 Sub 行を削除マイナス変更() For i = Cells(Rows.Count, "E").End(xlUp).Row To 1 Step -1 If Cells(i, "E") <> "S01" And _ Cells(i, "E") <> "S02" And _ Cells(i, "E") <> "E03" Then Rows(i).Delete ElseIf Cells(i, "E") = "E03" Then Cells(i, "I") = -Cells(i, "I") Cells(i, "J") = -Cells(i, "J") End If Next End Sub
お礼
前回に続きありがとうございました。 今後ともどうぞよろしくお願いします。
- tom04
- ベストアンサー率49% (2537/5117)
こんにちは! 前の質問と同様の方法の一例です。 Sub test2() Dim i As Long For i = 5000 To 1 Step -1 If Cells(i, 5) = "E03" Then Cells(i, 9) = Cells(i, 9) * (-1) Cells(i, 10) = Cells(i, 10) * (-1) End If Next i End Sub こんな感じではどうでしょか?m(__)m
お礼
引き続きありがとうございます。 今後ともよろしくお願いします。
お礼
いつもありがとうございます。 できました! 今後ともよろしくおねがいします。