这是我的代码。基本上,如果偏移列中的单元格具有值,则需要将此公式填充到当前单元格中,然后向下偏移一个以查看下一行。即使数据长约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
答案 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