楼主的意思你们理解有误吧,否则随便一个公式就解决问题了 我理解应该是这个要求 未输入时("_"代表空) _ _ _在第2行第1列输入a,第2行第2列显示1 _ a 1 _在第1行第1列输入b,第2行第2列显示2 b 2 a 1 _在第3行第1列输入c,第3行第2列显示3 b 2 a 1 c 3
解决方案如下: 把以下代码复制到表单的代码区(注意一定要是表单的代码区,否则没效果!)Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column <> 1 Then Exit Sub End If Cells(Target.Row, Target.Column + 1) = WorksheetFunction.CountA(Columns(1)) End Sub
1. 得出目前的最大顺序号
2. 第一列添加数据时,在新单元格记录最大顺序号+1感觉不用宏是做不到的,因为Excel公式没有时序的概念,所有结果都是立即计算出来的,所以会出现公式之间的循环引用此问题也证明了宏存在的必要性
2. 在第一列被输入单元格的对应第二列单元格写入n+1
在A列里面写下下面的函数,B列 里面输入数据,A累就会自动生成序号。
不知道是不是你想要的效果
=IF(B1=""," ",SUBTOTAL(3,B$1:B1))
我理解应该是这个要求
未输入时("_"代表空)
_
_
_在第2行第1列输入a,第2行第2列显示1
_
a 1
_在第1行第1列输入b,第2行第2列显示2
b 2
a 1
_在第3行第1列输入c,第3行第2列显示3
b 2
a 1
c 3
把以下代码复制到表单的代码区(注意一定要是表单的代码区,否则没效果!)Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 1 Then
Exit Sub
End If
Cells(Target.Row, Target.Column + 1) = WorksheetFunction.CountA(Columns(1))
End Sub