excel - 尽管最近没有更改代码,但 Range 类的 AutoFill 方法失败
问题描述
对于以下代码,我收到错误 1004 范围类的 AutoFill 方法失败。我之前已经多次运行代码,没有任何问题。不知道是什么突然导致了这个错误。
谢谢。
Chkstartrow = miscChecks.Cells(miscChecks.Rows.Count, ChktransIDcol.column).End(xlUp).Row + 1
misclastCol = miscChecks.Cells(1, miscChecks.Columns.Count).End(xlToLeft).column
miscChecks.Activate
miscChecks.Range("A1").Select
For i = 1 To misclastCol
ElseIf ActiveCell.Value = "MMB" Then
Set ChktransIDcol = miscChecks.Rows("2:2").Find(what:="Reference", LookIn:=xlValues, lookat:=xlWhole, MatchCase:=False, SearchFormat:=False)
Set MMBtransIDcol = MMB.Rows("1:1").Find(what:="Reference Number", LookIn:=xlValues, lookat:=xlWhole, MatchCase:=False, SearchFormat:=False)
Set MMBdatacol = MMB.Rows("1:1").Find(what:=ActiveCell.Offset(1, 0).Value, LookIn:=xlValues, lookat:=xlWhole, MatchCase:=False, SearchFormat:=False)
ChklastRow = miscChecks.Cells(miscChecks.Rows.Count, ChktransIDcol.column).End(xlUp).Row
miscChecks.Cells(Chkstartrow, i).Formula = "=IFNA(INDEX(MMB!" & MMB.Columns(MMBdatacol.column).Address(Rowabsolute:=False) & ", MATCH(" & miscChecks.Cells(Chkstartrow, ChktransIDcol.column).Address(Rowabsolute:=False) & ",MMB!" & MMB.Columns(MMBtransIDcol.column).Address(Rowabsolute:=False) & ",0)),""-"")"
miscChecks.Cells(Chkstartrow, i).Select
1004 Error Selection.AutoFill Destination:=Range(Cells(Chkstartrow, i), Cells(ChklastRow, i)), Type:=xlFillDefault
miscChecks.Range(miscChecks.Cells(Chkstartrow, i), Cells(ChklastRow, i)).Copy
miscChecks.Cells(Chkstartrow, i).PasteSpecial Paste:=xlPasteValues
解决方案
您可以直接将其写入所有单元格,而不是填写公式:
所以不是……</p>
miscChecks.Cells(Chkstartrow, i).Formula = "=IFNA(INDEX(MMB!" & MMB.Columns(MMBdatacol.column).Address(Rowabsolute:=False) & ", MATCH(" & miscChecks.Cells(Chkstartrow, ChktransIDcol.column).Address(Rowabsolute:=False) & ",MMB!" & MMB.Columns(MMBtransIDcol.column).Address(Rowabsolute:=False) & ",0)),""-"")"
做……</p>
miscChecks.Range(miscChecks.Cells(Chkstartrow, i), miscChecks.Cells(ChklastRow, i)).Formula = "=IFNA(INDEX(MMB!" & MMB.Columns(MMBdatacol.column).Address(Rowabsolute:=False) & ", MATCH(" & miscChecks.Cells(Chkstartrow, ChktransIDcol.column).Address(Rowabsolute:=False) & ",MMB!" & MMB.Columns(MMBtransIDcol.column).Address(Rowabsolute:=False) & ",0)),""-"")"
并将它们转化为值使用:
miscChecks.Range(miscChecks.Cells(Chkstartrow, i), miscChecks.Cells(ChklastRow, i)).Value = miscChecks.Range(miscChecks.Cells(Chkstartrow, i), miscChecks.Cells(ChklastRow, i)).Value
推荐阅读
- sass - 如何在伪元素上的父元素悬停效果中使用 & 符号?
- mysql - 如果第二列对于第一列中的每个条目总是只有几个条目,那么多列索引通常值得吗?
- postgresql - 将 MS SQL 哈希文本转换为 Postgres 哈希文本
- r - 评估包含另一个呼叫的呼叫(呼叫内呼叫)
- php - php - 警告:无法修改标头信息 - 标头已由(输出开始于 C:\xampp\htdocs\x\includes\nav-top.php:46)
- android - 如何知道 React-Native 中的 AsyncStorage 何时已满?
- javascript - 如何在 Javascript 中浏览区域列表
- asp.net-core - 将复杂对象保存到会话 ASP .NET CORE 2.0
- r - 当第 2 列中的值第 1 次超过 2 时返回第 1 列中的值
- c# - 在c#中使用random.Next生成10位随机数