使用VBA将Excel 2010公式转换为数组

时间:2015-03-23 18:13:56

标签: arrays excel

美好的一天,

我一整天都在寻找这个,但只能找到手动解决方法。

当我在Excel 2010中刷新表格数据时,它会在我的公式中产生#N / A,对某些数据进行排名。我现在已经创建了公式的文本副本,我可以将其复制回来,但是数组公式将要求我按F2和CSE为每一行。

如何让VBA在单元格中使用当前公式,只需添加{}以确保它再次成为数组公式?

典型的公式看起来像这样

    =sum(1*($G36<$G$2:$G$43))+1+IF(ROW($G36)-ROW($G$2)=0,0, SUM(1*        
    ($G36=OFFSET($G$2,0,0,INDEX(ROW($G36)-ROW($G$2)+1,1)-1,1))))

这意味着每一行中的每个公式都是唯一的。

所以我基本上都在寻找可以更改我选择的列中所有突出显示的单元格的VBA脚本。

谢谢!

1 个答案:

答案 0 :(得分:1)

选择您要更改的单元格并运行:

Sub dural()
    Dim r As Range
    For Each r In Selection
        r.FormulaArray = r.Formula
    Next r
End Sub