有没有一种方法可以在不循环的情况下向 Excel VBA (Excel 2007) 中的数字数组添加常量?
例如,我有以下数组:
MyArray = (1,2,3,4,5)
我想获得:
MyArray = (2,3,4,5,6)
不循环。
在电子表格上,如果值位于单元格 A1:A5
中,我可以选择 B1:B5
并输入数组公式 {=A1:A5 +1}
MyArray = MyArray + 1
似乎不起作用(类型不匹配错误)。
有什么想法吗?
最佳答案
也许这会让数组加一:
v = Array(1, 2, 3, 4, 5)
With Application
v = .MMult([{1,1}], .Choose([{1;2}], v, 1))
End With
更新
这是一种更直接的方法,也允许递增 2D 数组
v = Application.Standardize(v,-1,1)
工作表函数方法提供了各种各样的数学函数,但以下是我能找到的支持参数和返回值中的 VBA 数组的基本算术的唯一可行选项:
(u-v)/w = .Standardize(u,v,w)
-u*v -w = .Fv(0,u,v,w)
int(u/v) = .Quotient(u,v)
关于arrays - Excel VBA - 将数字数组的值移动一个常量而不循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18502689/