Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 如何向现有数组元素添加值?_Excel_Vba - Fatal编程技术网

Excel 如何向现有数组元素添加值?

Excel 如何向现有数组元素添加值?,excel,vba,Excel,Vba,假设我有两个数组(Arr1和Arr2),用于.Countifs应用程序 我的第三个数组是固定大小的7个元素,我想在整个Array2中循环.Countifs,并向Array3添加值 到目前为止,我对代码所做的是将.Countifs值设置为数组3,并每次覆盖它 尽管我已经尝试在线查找,但我所能找到的只是向数组中添加元素,而不是更新循环中的现有值 我错过了什么 For y = LBound(arr2) To UBound(arr2) arr3(y) = Application.WorksheetFu

假设我有两个数组(Arr1和Arr2),用于
.Countifs应用程序

我的第三个数组是固定大小的7个元素,我想在整个Array2中循环
.Countifs
,并向Array3添加值

到目前为止,我对代码所做的是将
.Countifs
值设置为数组3,并每次覆盖它

尽管我已经尝试在线查找,但我所能找到的只是向数组中添加元素,而不是更新循环中的现有值

我错过了什么

For y = LBound(arr2) To UBound(arr2)

arr3(y) = Application.WorksheetFunction.CountIfs(Sheets(3).Range("B:B"), arr1(Z, x), Sheets(3).Range("E:E"), arr2(y))

Next y
试试看:

For y = LBound(arr2) To UBound(arr2)


Debug.Print arr3(y)
Debug.Print Application.WorksheetFunction.CountIfs(Sheets(3).Range("B:B"), arr1(Z, x), Sheets(3).Range("E:E"), arr2(y))

arr3(y) = arr3(y) + Application.WorksheetFunction.CountIfs(Sheets(3).Range("B:B"), arr1(Z, x), Sheets(3).Range("E:E"), arr2(y))

Next y

使用F8运行代码,您将知道在数组和函数中计算的值,Debug将在即时窗口中打印它们(Cntrl+G)

arr3(0)=1将把1分配给数组3的第一个元素,然后再次写入arr3(0)=2
将覆盖数组的第一个元素并在其中存储2。是的,因此我的arr3现在都是0。然后它循环并存储这些值。再次循环后,我需要它将值添加到现有值中,而不是覆盖它们。我希望我能说清楚。你可以做
arr3(0)=arr3(0)+1
(除非您的函数没有返回任何值,否则它应该可以工作。谢谢。此循环位于另一个循环中,每次在此循环之前都会重拨我的arr3。重拨数组会在我的arr3末尾添加一个元素,您知道如何阻止此情况发生吗?删除该重拨行,但我需要我的arr3在此循环之前全部为0。)艺术再次出现。如果你想让它们为0,那么为什么这是一个问题,你不需要加上它以前的值,因为它将为0!!编辑你的问题,并准确解释你正在尝试做什么以及你在这方面的失败之处。