Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.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 SumIf在非活动工作表中并存储为数组元素_Excel_Vba - Fatal编程技术网

Excel SumIf在非活动工作表中并存储为数组元素

Excel SumIf在非活动工作表中并存储为数组元素,excel,vba,Excel,Vba,我的目标是SumIf在非活动工作表中,将结果值存储为数组元素,然后将数组转换到此工作簿中,保持最小的视觉和处理速度中断 代码: 以下是1004个错误: Arr1(i) = wsf.SumIfs(.Columns("BF3:BF" & k), .Columns("B3:B" & k), .Cells(1, 1), .Columns("BP3:BP" & k), .Cells(i + 2, 1)) 现在,由于msg

我的目标是
SumIf
在非活动工作表中,将结果值存储为数组元素,然后将数组转换到此工作簿中,保持最小的视觉和处理速度中断

代码:

以下是1004个错误:

Arr1(i) = wsf.SumIfs(.Columns("BF3:BF" & k), .Columns("B3:B" & k), .Cells(1, 1), .Columns("BP3:BP" & k), .Cells(i + 2, 1))
现在,由于msg只提供了发生错误类型的警报,因此没有提供进一步的详细信息,最可能的原因是(in)活动工作表的位置,但是激活-将相关工作表向前移动-被证明不成功,语法似乎正确引用了对象,无需激活(这很难看)

导致此错误的原因是什么?

.Columns(“BF3:BF”&k)
(举一个例子)应该是
.Range(“BF3:BF”&k)

您需要在此处使用
范围
,而不是
,因为您使用的不是整个列,而是列的子集


人们可以做
列(1)
列(“A”)
列(“A:A”)
,但不能做
列(“A1:A10”)

。列(“BF3:BF”&k)
(举一个例子)应该是
。范围(“BF3:BF”&k)
^^^^基本上将
列的所有实例更改为
范围
。非常感谢。出于好奇,.Columns用法为什么不正确?因为您使用的不是整个列,而是子集。您可以执行
列(1)
列(“a”)
列(“a:a”)
,但不能执行
列(“A1:A10”)
。明白。谢谢。
Arr1(i) = wsf.SumIfs(.Columns("BF3:BF" & k), .Columns("B3:B" & k), .Cells(1, 1), .Columns("BP3:BP" & k), .Cells(i + 2, 1))