Excel与for循环进行求和 - 类型不匹配错误

时间:2017-05-23 12:43:25

标签: excel vba excel-vba 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
          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

此代码不起作用,因为编译器返回Type missmatch,错误代码13 在行

temp = temp + Sheet.Cells(it_row,it_col).Value

我试图做CDouble(Sheet.Cells(it_row,it_col).Value),但这不起作用。

任何帮助都表示赞赏,因为我非常绝望,因为谷歌搜索并没有真正帮助我。

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

2 个答案:

答案 0 :(得分:0)

Average和Sum Excel函数忽略text,boolean和empty值:

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

答案 1 :(得分:-2)

检查

Sheet.Cells(it_row,it_col).Value

...与

if isnumeric(Sheet.Cells(it_row,it_col).Value)

...在将其添加到double类型值之前。如果该检查失败,那么您可以选择跳过它或将其视为某事。其他。 我会添加这个作为评论,但我没有足够的代表。添加评论。