自动填充范围到最后使用的行

Posted

技术标签:

【中文标题】自动填充范围到最后使用的行【英文标题】:Auto-fill Range to Last Row Used 【发布时间】:2021-03-02 20:58:31 【问题描述】:

我在单元格 G1 中有 0,需要自动填充 0 直到最后使用的行。

在下面的代码中,0 会更新到第 30 行,而我的行只填充到第 4 行。

我希望只有在相邻行中有数据时才填充 0。

NumberConv 是我工作簿中的 Sheet2。

Sub MacroNC

    Sheets("NumberConv").Select
    Range("G1").Select
    Selection.NumberFormat = "@"
    ActiveCell.FormulaR1C1 = "0"
    
    Sheet2.Select
    Range("G1").Select
    lastRow = ActiveSheet.UsedRange.Rows.Count
    Selection.AutoFill Destination:=Range("G1:G" & lastRow), Type:=xlFillCopy

End Sub

【问题讨论】:

.NumberFormat = "@" 的任何具体原因? 【参考方案1】: UsedRange is unreliable;使用End(xlUp) 查找最后一行。 无需AutoFill,您可以应用NumberFormat 并将Value 写入整个范围。 No Need to Select.
Sub MacroNC
    With Sheet2
        Dim lastRow As Long
        lastRow = .Cells(.Rows.Count, "F").End(xlUp).Row

        .Range("G1:G" & lastRow).NumberFormat = "@"
        .Range("G1:G" & lastRow).Value = 0
    End With
End Sub
旁注:不清楚为什么需要将零存储为文本。

【讨论】:

谢谢@BigBen,你这个人。我需要它作为文本,因为我将数据传输到的系统出于某种原因需要它作为文本:/ 我想这可能是原因......好吧,我很抱歉你不得不使用这样一个愚蠢的系统。

以上是关于自动填充范围到最后使用的行的主要内容,如果未能解决你的问题,请参考以下文章

范围类上的自动填充错误

自动填充到最后一个活动行

通过将活动单元格的范围提供给列的最后一行来显示自动填充命令范围中的错误

尝试自动填充到最后一行数据

从范围中选择最大数值并自动填充

复制/粘贴可变编号行(自动填充)