arrays - Excel VBA - 将数字数组的值移动一个常量而不循环

标签 arrays vba excel

有没有一种方法可以在不循环的情况下向 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/

相关文章:

c# - 通过反射(reflection)将 Excel 读到类

c# - 如何在 .net 的 sql server 中存储 float[]?

python - 在Python中循环二维数组的最有效方法是什么

c - 使用先前声明的数组初始化结构

vba - 非Variant参数可以变成vbError吗?

excel - 范围内的替代行颜色

PHP:获取与另一个字符串数组的子字符串匹配的字符串数组的数组值

image - 将一个Word文档插入另一个中时丢失的VBA图像

Excel 应用程序的体系结构

excel - 如何使用 "|"分隔和 utf-8 代码将 Excel 导出到 csv 文件