自动填充目标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