填充不起作用

我有一个很长的macros,这一块它不能正常工作。 我已经通过堆栈溢出和其他来源检查,但无法弄清楚是什么问题。 当我在一个单独的macros中运行这个代码时,它似乎工作正常,但是当我把它作为更大的macros的一部分包含在内时,就意味着它不再起作用。 最终结果是我的公式只在第3行,而不是按预期填充到底部。 这是与此工作表或数据交互的macros的唯一部分。 没有超出这一点就会造成问题。 最后复制+粘贴特殊值的部分是通过冻结数据来减less处理时间。 这是有问题的代码:

Dim ByCustRow As Long 'Populate the By Customer Summary Workbooks("Master Customer Statement File").Sheets("Scrubbed Data").Range("C3:E" & LastRow).Copy Workbooks("Master Customer Statement File").Sheets("By Customer Summary").Range("B3").PasteSpecial xlPasteValues Workbooks("Master Customer Statement File").Sheets("By Customer Summary").Range("B3:D" & LastRow).RemoveDuplicates Columns:=Array(1, 2, 3) ByCustRow = Workbooks("Master Customer Statement File").Sheets("By Customer Summary").Range("B" & Rows.Count).End(xlUp).Row Workbooks("Master Customer Statement File").Sheets("By Customer Summary").Range("E3").Formula = "=SUMIFS('Scrubbed Data'!$J:$J,'Scrubbed Data'!$C:$C,B3,'Scrubbed Data'!$I:$I,"">=""&'By Customer Summary'!$C$1)": Range("E3:E" & ByCustRow).FillDown Workbooks("Master Customer Statement File").Sheets("By Customer Summary").Range("F3").Formula = "=SUMIFS('Scrubbed Data'!$J:$J,'Scrubbed Data'!$C:$C,B3,'Scrubbed Data'!$I:$I,""<""&'By Customer Summary'!$C$1,'Scrubbed Data'!$I:$I,"">=""&'By Customer Summary'!$D$1)": Range("F3:F" & ByCustRow).FillDown Workbooks("Master Customer Statement File").Sheets("By Customer Summary").Range("G3").Formula = "=SUMIFS('Scrubbed Data'!$J:$J,'Scrubbed Data'!$C:$C,B3,'Scrubbed Data'!$I:$I,""<""&'By Customer Summary'!$D$1,'Scrubbed Data'!$I:$I,"">=""&'By Customer Summary'!$E$1)": Range("G3:G" & ByCustRow).FillDown Workbooks("Master Customer Statement File").Sheets("By Customer Summary").Range("H3").Formula = "=SUMIFS('Scrubbed Data'!$J:$J,'Scrubbed Data'!$C:$C,B3,'Scrubbed Data'!$I:$I,""<""&'By Customer Summary'!$E$1,'Scrubbed Data'!$I:$I,"">=""&'By Customer Summary'!$F$1)": Range("H3:H" & ByCustRow).FillDown Workbooks("Master Customer Statement File").Sheets("By Customer Summary").Range("I3").Formula = "=SUMIFS('Scrubbed Data'!$J:$J,'Scrubbed Data'!$C:$C,B3,'Scrubbed Data'!$I:$I,""<""&'By Customer Summary'!$F$1)": Range("I3:I" & ByCustRow).FillDown Workbooks("Master Customer Statement File").Sheets("By Customer Summary").Range("B3:I" & ByCustRow).Copy Workbooks("Master Customer Statement File").Sheets("By Customer Summary").Range("B3:I" & ByCustRow).PasteSpecial xlPasteValues Application.CutCopyMode = False 'End Populate the By Customer Summary 

而不是使用FillDown,只需将公式应用于整个范围

另外了解有关块,它会减less打字量。

另外当粘贴值时,直接赋值并跳过剪贴板。

 Dim ByCustRow As Long 'Populate the By Customer Summary Dim wb As Workbook Set wb = Workbooks("Master Customer Statement File") With wb.Sheets("By Customer Summary") .Range("B3").Resize(LastRow - 2, 3).Value = wb.Sheets("Scrubbed Data").Range("C3:E" & LastRow).Value .Range("B3:D" & LastRow).RemoveDuplicates Columns:=Array(1, 2, 3) ByCustRow = .Range("B" & Rows.Count).End(xlUp).Row .Range("E3:E" & ByCustRow).Formula = "=SUMIFS('Scrubbed Data'!$J:$J,'Scrubbed Data'!$C:$C,B3,'Scrubbed Data'!$I:$I,"">=""&'By Customer Summary'!$C$1)" .Range("F3:F" & ByCustRow).Formula = "=SUMIFS('Scrubbed Data'!$J:$J,'Scrubbed Data'!$C:$C,B3,'Scrubbed Data'!$I:$I,""<""&'By Customer Summary'!$C$1,'Scrubbed Data'!$I:$I,"">=""&'By Customer Summary'!$D$1)" .Range("G3:G" & ByCustRow).Formula = "=SUMIFS('Scrubbed Data'!$J:$J,'Scrubbed Data'!$C:$C,B3,'Scrubbed Data'!$I:$I,""<""&'By Customer Summary'!$D$1,'Scrubbed Data'!$I:$I,"">=""&'By Customer Summary'!$E$1)" .Range("H3:H" & ByCustRow).Formula = "=SUMIFS('Scrubbed Data'!$J:$J,'Scrubbed Data'!$C:$C,B3,'Scrubbed Data'!$I:$I,""<""&'By Customer Summary'!$E$1,'Scrubbed Data'!$I:$I,"">=""&'By Customer Summary'!$F$1)" .Range("I3:I" & ByCustRow).Formula = "=SUMIFS('Scrubbed Data'!$J:$J,'Scrubbed Data'!$C:$C,B3,'Scrubbed Data'!$I:$I,""<""&'By Customer Summary'!$F$1)" .Range("B3:I" & ByCustRow).Value = .Range("B3:I" & ByCustRow).Value End With