Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.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
Vba Excel对具有for循环类型不匹配错误的行求和_Vba_Excel_Confidence Interval - Fatal编程技术网

Vba Excel对具有for循环类型不匹配错误的行求和

Vba Excel对具有for循环类型不匹配错误的行求和,vba,excel,confidence-interval,Vba,Excel,Confidence Interval,所以我现在正在做一个Excel表格,我必须计算置信区间。长话短说,我认为我能自动完成这项工作的唯一方法是编写vba代码。第一步是计算工作表中几列的一列单元格的平均值。我所做的: Dim temp As Double temp = 0 Dim it_row As Long for it_row = 1 to 100 if IsBlank(Sheet.Cells(it_row,it_col)) then temp = temp + 0 else

所以我现在正在做一个Excel表格,我必须计算置信区间。长话短说,我认为我能自动完成这项工作的唯一方法是编写vba代码。第一步是计算工作表中几列的一列单元格的平均值。我所做的:

Dim temp As Double
temp = 0

Dim it_row As Long
for it_row = 1 to 100
     if IsBlank(Sheet.Cells(it_row,it_col)) then
          temp = temp + 0
     else
          temp = temp + Sheet.Cells(it_row,it_col).Value
     end if
next it_row

Dim Average As Double
Average = temp/100
'writing average in another cell
此代码不起作用,因为编译器返回类型missmatch,错误代码13 排队

temp=temp+Sheet.Cells(it行,it列)。值

我试着做一个
CDouble(Sheet.Cells(it\u row,it\u col.Value)
,但没有成功

任何帮助都是感激的,因为我非常绝望,因为谷歌搜索并没有真正帮助我

我应该提到我必须使用vba和这段代码,因为这是一个更大的自动化过程的一部分,我的主管说我必须在下一步使用vba实现自动化。

检查

Sheet.Cells(it_row,it_col).Value
…与

if isnumeric(Sheet.Cells(it_row,it_col).Value)
…然后将其添加到双精度类型值。如果该检查失败,那么您可以选择跳过它或将其视为其他内容。 我本想将其添加为注释,但我没有足够的代表添加注释。

和Excel函数的总和忽略文本、布尔值和空值:

Average = Application.Average(Sheet.Cells(1, it_col).Resize(100))

然后
Sheet.Cells(it\u行,it\u列).Value
中有文本或错误。在尝试将单元格添加到
temp
之前,您需要测试该单元格是否是一个数字。此外,我看不出您在何处声明并为
it\u col
赋值。如果您的单元格具有返回
的公式,则
ISBLANK
将返回false。也许可以尝试使用
Sheet.Cells(it\u行,it\u列)=“
来代替。您是否尝试过-->如果是数字(Sheet.Cells(it\u行,it\u列).Value),那么temp=temp+Sheet.Cells(it\u行,it\u列)。使用Excel公式应该更简单。甚至还有一个信心函数,这个评论已经发表了。请不要使用答案空间发表评论,这是一个很好的方式失去你已经拥有的代表。