为啥我的宏的自动填充公式被修改了?
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)"
【讨论】:
没问题,如果您对这个答案感到满意,可以将其标记为正确,以表明该问题已得到正确回答。以上是关于为啥我的宏的自动填充公式被修改了?的主要内容,如果未能解决你的问题,请参考以下文章