背景:我有一個函數,它需要幾個範圍作爲輸入並進行一些計算。它被廣泛使用,所以我希望儘可能避免改變它。如何將運算符應用於Excel VBA中的範圍副本
但是,我現在需要使用相同的功能,但有一個範圍我需要讓它在範圍的負值等價操作。
我的問題是:有沒有簡單的方法來操作範圍的副本?(無需更改電子表格中的基礎源數據 - 我無法將所有值都轉化爲負值,只是在計算中需要)。
我試着寫一個簡單的函數(下面)。我不知道我是否以錯誤的方式思考VBA範圍,但是每當我分配它時,影響都會反映在源代碼中(例如,它以By Reference方式執行,而不是By Value,如果這樣做有意義這方面)
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
我沒有嘗試谷歌搜索的答案,並在這裏尋找類似的問題。
也許我錯過了一些明顯的東西,只需要更多的咖啡?!任何建議感激地接受!
***我需要它在該範圍的負面等效。請問什麼是負面的? – bonCodigo
範圍指出一個數字列表。該函數目前通過傳遞範圍並得出結果(在其他地方使用)來處理這些數字。我需要該函數來接受內容值乘以-1的範圍(即如果數字是5,6,22;那麼函數應該使用-5,-6,-22) – Neil
'Set'設置參考到對象,所以這將始終工作ByRef而不是ByVal。關於[克隆對象](http://stackoverflow.com/questions/218696/cloning-objects-in-vba)的問題可能很有用,雖然它可能是矯枉過正。 –