抵消因为声明没有进展

时间:2016-07-16 16:06:41

标签: excel vba

这是我的代码。基本上,如果偏移列中的单元格具有值,则需要将此公式填充到当前单元格中,然后向下偏移一个以查看下一行。即使数据长约10行,我所得到的只是第一个单元格。最初甚至没有选择单元格F2作为第一行建议。不确定我在哪里错了!

Sub FillF()
    Range("F2").Select

    For i = 1 To 2000
        If Not IsEmpty(ActiveCell.Offset(0, -5)) Then
            ActiveCell.Formula = "=LOOKUP(RC[-2], 'Master Data'!C[-5], 'Master Data'!C[-4])"
            ActiveCell.Offset(1, 0).Select
        Else
            ActiveCell.Offset(1, 0).Select    
        End If
    Next i
End Sub

1 个答案:

答案 0 :(得分:1)

按照评论中的建议删除Select

还要确保从正确的工作表中引用单元格,这样如果在不同的工作表中运行宏,则不会弄乱引用。您可以按索引编号选择工作表:

  

Sheet1.Range( “F2”)

或其名称:

  

表格(“工作表名称”)。范围(“F2”)

您可以像这样重写代码:

Sub FillF()
    Dim MySheet As Worksheet
    Set MySheet = Sheets("My worksheet name")

    For i = 2 To 2000
        If Not IsEmpty(MySheet.Cells(i, 1)) Then
            MySheet.Cells(i, 6).FormulaR1C1 = "=LOOKUP(RC[-2], 'Master Data'!C[-5], 'Master Data'!C[-4])"
        End If
    Next i
End Sub