自动填充目标VBA

我有2个工作表,数据和转换。

在这里输入图像说明

尝试使用此macros在“数据”最后一行(可以超过100行)的“转换”中进行自动填充: –

Public Sub Call_Generate_Data() Sheets("Convert").Select ActiveCell.FormulaR1C1 = "=VLOOKUP(Data!RC[4],Links!R1C1:R14C2,2,FALSE)" Range("B2").Select ActiveCell.FormulaR1C1 = "=IF(Data!RC[12]="""",""1/1/2014"",Data!RC[12])" Range("B3").Select Selection.AutoFill Destination:=Range("A2:B" & Sheets("Data").Range("D" & Rows.Count).End(xlUp).Row) Sheets("Data").Select Range("B3").Select End Sub 

但是,我失败了: –

在这里输入图像说明

错误消息: –

在这里输入图像说明

debugging: –

在这里输入图像说明

有人可以帮我吗?

我build议不要以这种方式使用“ Selection ,但如果您录制了一个macros,那么您将在录制中获得这些macros。

你可以改变这个部分:

 Range("B3").Select Selection.AutoFill Destination:=Range("A2:B" & Sheets("Data").Range("T" & Rows.Count).End(xlUp).Row) 

至:

 Range("A2:B2").Select '<-- only part being changed Selection.AutoFill Destination:=Range("A2:B" & Sheets("Data").Range("T" & Rows.Count).End(xlUp).Row) 

或者,如果没有Selection您只需要将这两行replace为:

 Range("A2:B2").AutoFill Destination:=Range("A2:B" & Sheets("Data").Range("T" & Rows.Count).End(xlUp).Row) 

我不确定这是否是您需要的确切答案,但我希望它能帮助您得到答案! 我避免使用“select”,因为它们是无用的。 然后我检查了哪一个是最后一个有D列数据的单元格,然后自动填充B3公式直到计算出的值。

 Public Sub Call_Generate_Data() Sheets("Convert").Range("B2").FormulaR1C1 = "=VLOOKUP(Data!RC[4],Links!R1C1:R14C2,2,FALSE)" Sheets("Convert").Range("B3").FormulaR1C1 = "=IF(Data!RC[12]="""",""1/1/2014"",Data!RC[12])" LastRow = Sheets("Data").Cells(Rows.Count, 4).End(xlUp).Row Range("A2:B2").AutoFill Destination:=Range("A2:B" & LastRow & "") END sub