0

背景:入力としていくつかの範囲を取り、いくつかの計算を行う関数があります。広く使われているので、できれば変更は避けたいと思っています。

ただし、同じ関数を使用する必要がありますが、範囲の1つでは、範囲の負の値で動作させる必要があります。

私の質問は:範囲のコピーを操作する簡単な方法はありますか? (スプレッドシートの基になるソースデータを変更せずに-すべての値を負にすることはできません。計算に必要なだけです)。

簡単な関数を書いてみました(下)。VBA 範囲を間違った方法で考えているかどうかはわかりませんが、それを割り当てるたびに、その影響がソースに反映されます (つまり、値ではなく参照方法でそれを行っています。この文脈)

Function NegateRangeContents(rRange As Range) As Range
  Dim r As Range
  Dim rOutput As Range

  Set rOutput = rRange

  For Each r In rOutput
    r.Value = -r.Value
  Next r

  Set NegateRangeContents = rOutput
  Set r = Nothing
  Set rOutput = Nothing

End Function

私は答えを得るためにグーグルを試し、ここで同様の質問を探しました.

たぶん、明らかな何かが欠けていて、もっとコーヒーが必要なだけですか?! どんなアドバイスもありがたく受け入れました!

4

1 に答える 1