Excel宏 - 需要知道如何循环它

时间:2014-05-30 13:42:57

标签: excel excel-vba loops vba

我试图找到一个循环这个宏的相关线程,但我很难找到一个相关的。我真正想做的就是输入公式(已经写在列中的每个单元格中)作为数组。这是我做前三个的宏,但是我很难找到一个简单的方法来循环这个,比如前500行。

Selection.FormulaArray = _
    "=IF(ISERROR(INDEX(Sheet3!R1C1:R7000C8,SMALL(IF(Sheet3!R1C1:R495C2=R4C3,ROW(Sheet3!R1C1:R495C2)),ROW(Website!R[-9])),1)),"""",INDEX(Sheet3!R1C1:R7000C8,SMALL(IF(Sheet3!R1C1:R495C2=R4C3,ROW(Sheet3!R1C1:R495C2)),ROW(Sheet3!R[-9])),1))"
ActiveCell.Offset(1, 0).Range("A1").Select
Selection.FormulaArray = _
    "=IF(ISERROR(INDEX(Sheet3!R1C1:R7000C8,SMALL(IF(Sheet3!R1C1:R495C2=R11C3,ROW(Sheet3!R1C1:R495C2)),ROW(Website!R[-10])),1)),"""",INDEX(Sheet3!R1C1:R7000C8,SMALL(IF(Sheet3!R1C1:R495C2=R11C3,ROW(Sheet3!R1C1:R495C2)),ROW(Sheet3!R[-10])),1))"
ActiveCell.Offset(1, 0).Range("A1").Select
Selection.FormulaArray = _
    "=IF(ISERROR(INDEX(Sheet3!R1C1:R7000C8,SMALL(IF(Sheet3!R1C1:R495C2=R12C3,ROW(Sheet3!R1C1:R495C2)),ROW(Website!R[-11])),1)),"""",INDEX(Sheet3!R1C1:R7000C8,SMALL(IF(Sheet3!R1C1:R495C2=R12C3,ROW(Sheet3!R1C1:R495C2)),ROW(Sheet3!R[-11])),1))"
ActiveCell.Offset(1, 0).Range("A1").Select

有人可以帮我吗?我会很感激!

1 个答案:

答案 0 :(得分:1)

如果已经在某个区域中有正常公式,并且您想将它们转换为数组公式,请选择单元格并运行:

Sub MakeArray()
    Dim r As Range
    For Each r In Selection
        If r.HasFormula Then
            r.FormulaArray = r.Formula
        End If
    Next r
End Sub