在Excel中添加行并递增帐号

时间:2016-06-15 15:22:51

标签: excel vba

我正在接收外部供应商的邮件列表。我们将使用Excel 2010.有一个唯一的帐号列。

我需要一个宏来确定何时添加新行而不是现有行被修改,然后如何获取最大值(帐号)并添加1来保持新帐号的唯一性。

1 个答案:

答案 0 :(得分:0)

您可以跟踪对工作表所做的更改。如果在“帐号”列中没有任何内容的行上发现更改的单元格为非空白​​,则会计算并填写新帐号:

将此代码放在工作表的VBA模块中:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim record As Range
    Dim maxAccountNo As Long

    For Each record In Target.Rows
        If Cells(record.row, 1) = "" And WorksheetFunction.CountA(record.EntireRow) > 0 Then
            If Not maxAccountNo Then
                maxAccountNo = 1 + WorksheetFunction.Max(Range("$A:$A"))
            End If
            Cells(record.row, 1) = maxAccountNo
        End If
    Next
End Sub

这也包括您复制/粘贴没有填写帐号的多行的情况。

请注意,此代码假定帐号位于A列,不包括第一行。如有必要,请在代码中调整此引用:

$A2:$A100000

..以及列号:

Cells(record.row, 1)