[英]VBA copy formula into last row with data (based on different column) not working
即使在嘗試了各種聲明和實例化變量LastRow
的可能性之后,我也無法運行LastRow
。 我只想將M
列的公式結果下拉到基於G
列(即第 23 行)的數據的最后一行。 公式現在被拖到第 224 行。
類似地,我需要根據最后一行包含H
列(即第 24 行)中的數據來下拉N
列和O
列的公式。 在這里,公式也被下拉到 224 而不是第 24 行。
我究竟做錯了什么? 我知道對於N
列和O
列,我需要基於列H
創建第二個變量,但希望先運行一個,然后再嘗試第二個。
Dim LastRow As Long
LastRow = ActiveSheet.Cells(ActiveSheet.Rows.Count, 8).End(xlUp).Row
Range("M2").Select
ActiveCell.FormulaR1C1 = "=IFERROR(RC[-6]/'Sheet1'!R1C2,0)"
Range("N2").Select
ActiveCell.FormulaR1C1 = "=IFERROR(RC[-6]/'Sheet1'!R1C2,0)"
Range("O2").Select
ActiveCell.FormulaR1C1 = "=IFERROR(RC[-3]/'Sheet1'!R1C2,0)"
Range("M2").Select
Selection.AutoFill Destination:=Range("M2:M2" & LastRow)
Range("M3:M" & LastRow).Formula = "=G3&"",""&L3"
Range("M2").Select
ActiveCell.FormulaR1C1 = "=IFERROR(RC[-6]/'Sheet1'!R1C2,0)"
Range("N2").Select
ActiveCell.FormulaR1C1 = "=IFERROR(RC[-6]/'Sheet1'!R1C2,0)"
Range("O2").Select
ActiveCell.FormulaR1C1 = "=IFERROR(RC[-3]/'Sheet1'!R1C2,0)"
Range("M2").Select
Selection.AutoFill Destination:=Range("M2:M2" & LastRow)
Range("N2:O2").Select 'changed from M2 to N2
Selection.AutoFill Destination:=Range("N2:O2" & LastRow) 'changed from M2 to N2
'Range("N2:O2" & LastRow).FillDown
Range(Selection, Selection.End(xlDown)).Select
創建最后兩個行變量,去掉Select
、 ActiveCell
,然后使用Resize
設置范圍。 您可能需要使用 gRow - 1,因為您是從 M2 等開始的。這是一個示例...
Dim gRow As Long, hRow As Long
gRow = ActiveSheet.Cells(ActiveSheet.Rows.Count, 7).End(xlUp).Row
hRow = ActiveSheet.Cells(ActiveSheet.Rows.Count, 8).End(xlUp).Row
Range("M2").Resize(gRow).FormulaR1C1 = "=IFERROR(RC[-6]/'Sheet1'!R1C2,0)"
Range("N2").Resize(hRow).FormulaR1C1 = "=IFERROR(RC[-6]/'Sheet1'!R1C2,0)"
Range("O2").Resize(hRow).FormulaR1C1 = "=IFERROR(RC[-6]/'Sheet1'!R1C2,0)"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.