【问题标题】:Adding a new row in excel using VBA使用 VBA 在 Excel 中添加新行
【发布时间】:2016-03-13 01:27:15
【问题描述】:

我有一张表,其中包含带有以下文本 (D#) 的行:

  • D1
  • D2
  • D3

我需要在最后一个条目“D3”下添加一个新行“D4”(将下一个整数附加到字母 D)。当然,下次新条目将是“D5”等...... 如何使用 VBA 脚本或宏来做到这一点?

【问题讨论】:

  • 录制一个宏做你想做的事。然后查看您记录的内容,并将其清理干净。

标签: excel vba macros


【解决方案1】:

在 D 列中输入以下工作表公式并将其扩展到整个区域:

="D" & ROW()

您可以通过 Excel VBA 宏将其自动化,如以下代码 sn-p 所示,该代码使用工作表公式填充 Range("D1:D20")

Range("D1:D20").Formula = "= ""D"" & Row()"

对于您的特定任务,您可以考虑使用宏记录器,然后“润色”VBA 代码。

希望这会有所帮助。

【讨论】:

    【解决方案2】:

    使用它来查找工作表上的最后一行:

    ColNum = 4
    LastRow = ActiveSheet.Cells(Rows.Count, ColNum).End(xlUp).Offset(Abs(ActiveSheet.Cells(Rows.Count, ColNum).End(xlUp).Value <> ""), 0).Row
    

    LastRow 的值将是工作表中下一个打开的行。

    要在代码中引用单元格:

    ActiveSheet.Range("D" & Trim(Str(LastRow))).Value = "YourValue"
    

    或带索引:

    ActiveSheet.Range(Cells(LastRow, 4), Cells(LastRow, 4)).Value = "YourValue"
    

    【讨论】:

    • 只是指出这将适用于ActiveSheet,这可能并不总是操作员将使用的工作表。在后一种情况下,ws 是保存应该使用的工作表对象的变量lastRow = ws.Cells(ws.Rows.Count, nCol).End(xlUp).Offset(Abs(ws.Cells(ws.Rows.Count, nCol).End(xlUp).Value &lt;&gt; ""), 0).row
    【解决方案3】:

    这会在给定工作表的给定列中的下一个单元格中填充一个左数字部分增加一的值

    Sub FillRow(ws As Worksheet, nCol As Long)
    Dim lastRow As Long
    
    With ws
        lastRow = .Cells(.Rows.Count, nCol).End(xlUp).row
        With .Cells(lastRow, nCol)
            .Offset(1).Value = "D" & Right(.Value, Len(.Value) - 1) + 1
        End With
    End With
    
    End Sub
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-02
      相关资源
      最近更新 更多