|
▼miyakken さん:
こんにちは。
> Range(Cells(7, 1), Cells(gyou, retu)).AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
> Range(Cells(3, 1), Cells(5, retu)), Unique:=False
>
>For g = 8 To gyou
>Next
これは、せっかくフィルタオプションで条件付けて行を抽出しているのに、
> For g = 8 To gyou
のLoop処理は、フィルタされた行に対してだけでなく
すべての行について
「借方CD」が「現金」なら +金額
そうでなければ −金額
を「残高」欄に書き込んでいるから、効率わるいですよね?
また、Else で 「借方CD」が「現金」でないすべての行が
−金額
となってしまいますけど、意図した処理ですか?
↓フィルタかけないサンプルです。
Sub Try2()
With Range("A7").CurrentRegion
With Intersect(.Columns(5), .Columns(5).Offset(1))
.ClearContents
.Formula = _
"=IF(B8=$B$4,D8,IF(C8=$B$4,-D8,""""))"
.Value = .Value
End With
End With
End Sub
※[$B$4] には「現金」
|
|