自动填充公式
Posted
技术标签:
【中文标题】自动填充公式【英文标题】:Autofilling Formulas 【发布时间】:2018-07-28 12:49:28 【问题描述】:所以我试图让 excel 将公式自动填充到 F 列中,该公式将 A 列中的值(F 和 A 列都在标有“PMG”的工作表中)与另一个工作表中 A 列中的值进行比较(“表 1")。这是我所拥有的:
ThisWorkbook.Sheets("PMG").Range("F2").Formula = "=VLOOKUP(A2,Sheet1!A:A,1,FALSE)"
ThisWorkbook.Sheets("PMG").Range("F2", "F" & Cells(Rows.Count, 1).End(xlUp).Row).FillDown
此代码最初在这里找到:https://www.mrexcel.com/forum/excel-questions/812384-vba-macro-applies-formula-down-column-until-last-row.html
我遇到的问题是,自动填充只会在“Sheet1”A 列中填充单元格时下降,而不是在“PMG”A 列中填充单元格时。因此,公式没有自动填充 180 行,而是仅填充了大约 80 行。
感谢您的帮助!
【问题讨论】:
【参考方案1】:尝试包装在 With 块中以确保始终使用正确的工作表。
Option Explicit
Public Sub test()
With ThisWorkbook.Sheets("PMG")
.Range("F2").Formula = "=VLOOKUP(A2,Sheet1!A:A,1,FALSE)"
.Range("F2:F" & .Cells(Rows.Count, 1).End(xlUp).Row).FillDown
End With
End Sub
您也可以使用 R1C1 表示法而不是向下填写。
Option Explicit
Public Sub test()
With ThisWorkbook.Sheets("PMG")
.Range("F2:F" & .Cells(Rows.Count, 1).End(xlUp).Row).FormulaR1C1 = "=VLOOKUP(RC[-5],Sheet1!C[-5],1,FALSE)"
End With
End Sub
【讨论】:
以上是关于自动填充公式的主要内容,如果未能解决你的问题,请参考以下文章