已填充的公式填充行

时间:2018-01-22 18:36:16

标签: vba excel-vba excel

所以我有这个公式在过滤后填充到可见的行。问题是如果我将公式更改为1 + 1,函数可以正常工作,但是当我将其更改为VLookup函数时,它会将VLOOKUP公式插入标题并给出错误"范围类的FillDown方法失败& #34;

Sub GG()
With Sheet1
ActiveSheet.Range("$A$1:$AC$43123").AutoFilter Field:=5, Criteria1:="#N/A"

With ActiveSheet.Range("E2:E" & Cells(Rows.Count, 2).End(xlUp).Row).SpecialCells(xlCellTypeVisible)
.Cells.FormulaR1C1 = "=VLOOKUP(A2,'C:\Users\Reports\[Lookup Data Table.xlsx]Product Group'!A2:L2835,5,FALSE)"
.Cells.FillDown


End With

End With
End Sub

如果我将此行中的公式更改为" = 1 + 1",它会填充可见行并且标题保持不变。

.Cells.FormulaR1C1 = "=VLOOKUP(A2,'C:\Users\Reports\[Lookup Data Table.xlsx]Product Group'!A2:L2835,5,FALSE)"

1 个答案:

答案 0 :(得分:1)

您正在对E列进行过滤,因此将其用于可见单元格。

ActiveSheet.Range("E2:E" & Cells(Rows.Count, "E").End(xlUp).Row).SpecialCells(xlCellTypeVisible)

您可能希望使用.Formula,如评论中所述,您未在公式中使用R1C1表示法。此外,您需要修复查找范围$A$2:$L$283,除非您希望它移位?而且我不确定您是否需要.FillDown,因为您已经将公式应用于范围。