0

VBA で範囲小計関数を使用する Excel VBA があります。すべて問題ありませんが、いくつかの列で行う必要があるのは、いくつかの列の小計式を別の式に置き換えることです。

このようにする必要があるのは、別の計算を実行する前に、他の列で小計結果が必要だからです。

Replace を使用してみましたが、新しい式が表示されません。

私はやってみたいです

Selection.Replace What:="SUBTOTAL(9", Replacement:="RC[-1]/RC[-2]", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False

新しいフォーミュラを取得するにはどうすればよいですか?

4

1 に答える 1

0

数式を使用してセルを実行するReplace場合、結果が有効な数式でない場合、置換は許可されないと思います。元の数式の形式を考えると、次のSUBTOTALようになります

=SUBTOTAL(9,C100:C150)

そして、あなたの交換は次のようになります

=RC[-1]/RC[-2],C100:C150)

これは有効な数式ではありません

私が正しく理解しているなら、あなたはこのようなものが欲しい

=SUBTOTAL(9,C100:C150)

これになる

=RC[-1]/RC[-2]

To do that, you can Findsearch to search the selected cell to see if "SUBTOTAL(9" is in the formula. ある場合は、数式全体を目的の数式に置き換えます。以下の例を参照してください。

Dim myRange As Range
Dim searchResult As Range

Set myRange = Selection
Set searchResult = myRange.Find(What:="SUBTOTAL(9", LookIn:=xlFormulas)

Do While Not searchResult Is Nothing
    searchResult.Formula = "=RC[-1]/RC[-2]"
    Set searchResult = myRange.FindNext(searchResult)
Loop
于 2013-11-07T17:02:18.497 に答える