使excel自动生成基于单元格值的数字

时间:2018-09-19 01:40:57

标签: excel vba excel-vba

我希望excel根据单元格中的值生成行号。

 For example:(output) Columns  : A         B         C
                                 1         xx        xx
                                                     xx 
                                 2         yy        yy
                                                     yy
                                 3         zz        zz
                                                     zz
                                                     zz

如果我删除了数字2,则3将变成2。

这是我现有的代码

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 Then
If Target.Offset(0, -1).Value = "" Then
Target.Offset(0, -1).Value = Application.WorksheetFunction.Max(Columns("A")) + 1
Else
Target.Offset(0, -1).Value = Application.WorksheetFunction.Max(Columns("A")) - 1
End If
End If

End Sub

Function Max_Each_Column(Data_Range As Range) As Integer
    Dim TempArray() As Double, i As Long
        If Data_Range Is Nothing Then Exit Function
        With Data_Range
        ReDim TempArray(1 To .Columns.Count)
        For i = 1 To .Columns.Count
            TempArray(i) = Application.Max(.Columns(i))
        Next
    End With
        Max_Each_Column = TempArray
End Function

1 个答案:

答案 0 :(得分:1)

这似乎是XY问题。但是我认为您正在尝试为C列中每个不同值的第一个实例建立索引,也许它是数据透视表?

将此公式放在单元格A1中并抄下来:

=IF(B1<>"",COUNTA(B$1:B1)+1,"")