|
▼VBWASURETA さん:
こんばんは。
>多分ですが、nadataniさんは途中結果のマイナス値も必要で元を
>書き換えたいということだと思います。
なるほど・・・、
VBWASURETA さんのコードも拝見しました。
ということは、
D列に「ABAB」と入力されている対応するA列の値は、0又は、正の数値である
という条件なのですね!!
私は、ここには、負の数が入る可能性もあり、その時は正の数に変換した後に
計算する という仕様だと思っていました。
0又は、正の数値である と言う条件なら・・、
'====================================
Sub 総合計1()
Dim rng As Range
Set rng = Range(Cells(7, 1), Cells(Rows.Count, 1).End(xlUp))
With rng
Debug.Print "=if(offset(" & .Address & ",0,3)=""ABAB"",abs(" & .Address & ")," & _
.Address & ")" & vbCrLf & _
"という数式で初期化します"
.Value = Evaluate("=if(offset(" & .Address & ",0,3)=""ABAB"",abs(" & .Address & ")," & _
.Address & ")")
Debug.Print "=if(offset(" & .Address & ",0,3)=""ABAB"",-1*(" & .Address & ")," & _
.Address & ")" & vbCrLf & "こんな配列数式を評価します"
.Value = Evaluate("=if(offset(" & .Address & ",0,3)=""ABAB"",-1*(" & .Address & ")," & _
.Address & ")")
End With
If rng.Row > 6 Then
Range("F4").Value = Application.Sum(rng)
MsgBox "総合計は" & Format(Range("F4").Value, "#,##0")
End If
End Sub
こんなコードで
D列に「ABAB」と入力されている対応するA列の値は、0又は、負の数値に
なると思います。
|
|