背景:我有一个函数,它需要几个范围作为输入并进行一些计算。它被广泛使用,所以我很想尽可能避免改变它。
但是,我现在需要使用相同的函数,但是对于其中一个范围,我需要让它在该范围的负等效项上运行。
我的问题是:有没有一种简单的方法来操作一个范围的副本?(在不更改电子表格中的基础源数据的情况下 - 我不能在那里将所有值变为负值,它只是计算中需要的)。
我尝试编写一个简单的函数(如下)。我不知道我是否以错误的方式考虑 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
我确实尝试用谷歌搜索来寻找答案,并在这里寻找类似的问题。
也许我错过了一些明显的东西,只是需要更多的咖啡?!任何建议都欣然接受!