如果单元格为N / A,如何用上方和下方的单元格平均值替换它?

时间:2018-07-22 14:34:01

标签: excel vba excel-vba

如果单元格在excel中为N / A,如何用VBA中上下两个单元格的平均值替换该单元格?我想在整个电子表格中做到这一点。

有两种情况:

  1. B6:H6-我想使用B5:H5和B7:H7对这些单元进行平均 (例如,B6是B5和B7的平均值,C6是C5和C7的平均值,等等)

  2. B10:H10和B11:H11-我想使用B9:H9和B12:H12对这些单元进行平均 (例如,此处的逻辑相同,B10是B9和B12的平均值) (我会 想使用B11:H11计算我的B10:H10平均值)

*请记住,在实际数据中,有多行N / A(例如B10:H40都可以为N / A)

非常感谢您为您提供的帮助!

Sample Data

1 个答案:

答案 0 :(得分:0)

尝试

with worksheets("sheet1")
    on error resume next
    set rng = .range("B6:H6").specialcells(xlcelltypeformulas, xlerrors)
    if not rng is nothing then
        rng.formular1c1 = "=average(r5c, r7c)"
    end if
    set rng = .range("B10:H11").specialcells(xlcelltypeformulas, xlerrors)
    if not rng is nothing then
        rng.formular1c1 = "=average(r9c, r12c)"
    end if        
end with

如果这些范围实际上包含常量而不包含公式,则将xlcelltype常数更改为xlcelltypeformulas。