Range 类的自动填充方法在填充表时失败

Posted

技术标签:

【中文标题】Range 类的自动填充方法在填充表时失败【英文标题】:Autofill Method of Range class failed while populating table 【发布时间】:2016-03-14 12:11:00 【问题描述】:

我目前正在处理一个 Excel 项目,该项目获取原始数据并将其放入表格中。目前该表根据复制到其中的数据的大小调整大小。我遇到的问题是,故事的大部分内容都是基于数据的公式。我正在尝试根据从数据确定的大小将公式自动填充到表的末尾,并得到错误“范围类的自动填充方法失败”

ColNo = 26 + ((large - Year(Date)) * 4)
ColLet = Split(Cells(, ColNo).Address, "$")(1)

Sheets(sheetsSA).Range("V3:W4").AutoFill Destination:=Sheets(sheetsSA).Range("V3:W" & semi_end + 1)
 ****Sheets(sheetsSA).Range("X3:Y4").AutoFill Destination:=Sheets(sheetsSA).Range("X3:" & ColLet & semi_end + 1)****

星号线是给出问题的线。任何帮助将不胜感激。前两行查找用于自动填充的列的字母。 谢谢

【问题讨论】:

【参考方案1】:

AutoFill 命令在范围参数的第一部分需要整个列宽。

这行代码应该可以工作:

Sheets(sheetsSA).Range("X3:" & ColLet & "4").AutoFill Destination:=Sheets(sheetsSA).Range("X3:" & ColLet & semi_end + 1)

此外,`With End With Statement' 会很好地搜索您

With Sheets(sheetsSA)
    .Range("V3:W4").AutoFill Destination:=.Range("V3:W" & semi_end + 1)
    .Range("X3:" & ColLet & "4").AutoFill Destination:=.Range("X3:" & ColLet & semi_end + 1)
End With

【讨论】:

非常感谢斯科特,这很好用!我不知道在参数的第一部分中需要整个列宽。感谢您的帮助。 是的,直觉上,如果你想它是有道理的。您必须先知道要填充的确切范围,然后才能填充:) 同意,我越想越有意义。我对 VBA 和 Excel 还是很陌生。感谢您的帮助:)

以上是关于Range 类的自动填充方法在填充表时失败的主要内容,如果未能解决你的问题,请参考以下文章

运行代码时,它返回 - 范围类的自动填充方法在代码的最后一行失败:VBA

VBA Excel 2010 - 自动填充不填充

应用公式,然后自动填充数据,直到列中的最后一个可见单元格:VBA

范围类上的自动填充错误

如何在 VBA 中自动填充函数?

Excel VBA 代码上的自动填充错误