为啥我的宏的自动填充公式被修改了?

Posted

技术标签:

【中文标题】为啥我的宏的自动填充公式被修改了?【英文标题】:Why is my auto-fill formula from a macro being modified?为什么我的宏的自动填充公式被修改了? 【发布时间】:2016-12-15 12:32:05 【问题描述】:

我使用以下解决方案从宏中自动填充公式。

enter link description here

调用以下行的代码:

Sub FillData()
Dim rng1 As Range
Set rng1 = Range([a1], [a1].End(xlDown))
If Not (rng1.Rows.Count = Rows.Count And Len([a1].Value) = 0) Then rng1.Offset(0, 3).FormulaR1C1 = "=RC2"
End Sub

使用此示例,我创建了以下代码片段:

If Not (rng1.Rows.Count = Rows.Count And Len([a1].Value) = 0) Then rng1.Offset(1, 4).FormulaR1C1 = "=VLOOKUP(RC1,'My Excel Tab name'!A:D,4,FALSE)"

但是,最终出现在单元格中的公式在 A:D 中的 D 周围确实有括号,看起来像这样:

=VLOOKUP($A3,'SubstationsPJM-New'!A:(D),4,FALSE)

我在这里做错了什么? 谢谢

【问题讨论】:

【参考方案1】:

您没有在公式中使用 R1C1 引用。

您需要将 'My Excel Tab name'!A:D 替换为 R1C1 等效项,即 'My Excel Tab name'!C1:C4(第 1 至 4 列),因此您的公式应如下所示:

"=VLOOKUP(RC1,'My Excel Tab name'!C1:C4,4,FALSE)"

【讨论】:

没问题,如果您对这个答案感到满意,可以将其标记为正确,以表明该问题已得到正确回答。

以上是关于为啥我的宏的自动填充公式被修改了?的主要内容,如果未能解决你的问题,请参考以下文章

自动填充不会从所需的单元格开始,也不会填充

使用 VBA 插入一行并自动填充

VBA:循环遍历行和自动填充的宏

如何在 MS Excel 中自动填充公式,使其跳过中间的一些行?

如何修改excel自动填充?

Excel 自动填充和调整公式