为啥我的自动填充代码在我没有为 VBA 引用的单元格中显示 #N/A?

Posted

技术标签:

【中文标题】为啥我的自动填充代码在我没有为 VBA 引用的单元格中显示 #N/A?【英文标题】:Why does my autofill code display #N/A in a cell I did not reference for VBA?为什么我的自动填充代码在我没有为 VBA 引用的单元格中显示 #N/A? 【发布时间】:2017-07-19 19:24:40 【问题描述】:

我昨天问了一个类似的问题,我遇到了另一个问题。这是我的代码(我声明了我的工作表):

Dim lrp As Long 'last row for pricing worksheet
Dim lrf As Long 'last row for forecasting worksheet

lrp = Pricing.Range("A3", Pricing.Range("A" & Rows.Count)).End(xlUp).Row
lrf = Forecast.Range("A6", Forecast.Range("A" & Rows.Count)).End(xlUp).Row

'Pricing Worksheet
Pricing.Range("B3:AR3").autofill Destination:=Pricing.Range("B3:AR" & lrp)

'Forecasting Worksheet
Forecast.Range("B6:HO6").autofill Destination:=Forecast.Range("B6:HO" & lrf)

如果我们以定价工作表为例,我之所以使用 ("B3:AR3") 是因为我在所有单元格中都有公式,我想将这些公式复制到最后一行 (lrp)。此代码会自动填充所有内容,但也会将公式添加到其上方的单元格中。因此,例如现在 B2 中有一个公式,当它应该是我的标题时,它会显示为“#N/A”。如何将公式从第 3 行(从 B 列到 AR)自动填充到最后一行,而不将其包含在标题中。

感谢大家的帮助。 VBA 还是新手。

【问题讨论】:

所以公式从B3 开始填写,但随后也在B2 中添加了一些内容?与B6 相同,是否在B5 中添加了一些内容? 您是否尝试过不使用自动填充,而只是复制这些单元格/公式并粘贴到该范围内? 您能告诉我们您从lrplrf 得到什么吗?如果它们根本小于 3,则您的范围将包括第 2 行。 BruceWayne:这正是我的问题 @GCC 在 AutoFill 调用之前它们有什么值?例如,如果 lrp 结果为 2,您的第一个自动填充功能会将 DestinationRange("B3:AR" & lrp) 评估为 Range("B3:AR2"),然后将其更改为 Range("B2:AR3") 【参考方案1】:

变化:

lrp = Pricing.Range("A3", Pricing.Range("A" & Rows.Count)).End(xlUp).Row
lrf = Forecast.Range("A6", Forecast.Range("A" & Rows.Count)).End(xlUp).Row

lrp = Pricing.Range("A" & Rows.Count).End(xlUp).Row
lrf = Forecast.Range("A" & Rows.Count).End(xlUp).Row

【讨论】:

我仍然收到不适用的 但是你有没有把它放在标题应该在的地方? 我知道标题应该在哪里 A列有数据吗? 我在 A 中一直有数据,直到第 1200 行

以上是关于为啥我的自动填充代码在我没有为 VBA 引用的单元格中显示 #N/A?的主要内容,如果未能解决你的问题,请参考以下文章

Excel vba 仅自动填充空单元格

使用excel VBA仅引用一个数字来自动填充日期

为啥 Excel 中的自动调整行 VBA 代码不断在我的公式中导致 #value 错误?

如何使用 VBA 根据活动工作表中的单元格自动填充 Excel 表单?

自动填充到vba中的命名范围

自动填充中断一条记录 [Excel-VBA]