|
▼nadatani さん:
こんばんは。
>Buttonを押して
>A列の合計をさせたいのですが、
>4列目が「ABAB」のデータが
>あるときは、A列の数字をマイナスに変えA列の合計をさせたいのです。
>コード「総合計」は
>一回ボタンを押せば「マイナス処理をした合計」になり正解なのですが
>二回ボタンを押すと「マイナス*マイナス処理」→プラスになり最初の合計と
>後の合計に差がマイナス分の2倍が
>生じます。
元データを変えてしまうと、そりゃあ、一回目と2回目では
計算結果が違ってきますよね!!
Sub 総合計1()
Dim ans As Variant
Dim i As Integer, rng As Range, pvl As Long
pvl = Range("F4").Value
Set rng = Range(Cells(7, 1), Cells(Rows.Count, 1).End(xlUp))
With rng
MsgBox "=if(offset(" & .Address & ",0,3,1,1)=""ABAB"",-1*(" & .Address & ")," & _
.Address & ")" & vbCrLf & "こんな配列数式を評価します"
ans = Evaluate("=if(offset(" & .Address & ",0,3)=""ABAB"",-1*(" & .Address & ")," & _
.Address & ")")
End With
If rng.Row > 5 Then 'この5の意味がわかりませんが、そのままにしておきます
Range("F4").Value = Application.Sum(ans)
MsgBox "総合計は" & Format(Range("F4").Value, "#,##0")
End If
End Sub
|
|