ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 153|回复: 3

[求助] 求教:能否实现根据单元格输入顺序生成序号?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-7-1 21:45 | 显示全部楼层 |阅读模式
在A列和D列输入数字后,根据输入顺序自动生成序号?请问能否实现?多列数据呢?

图例为:首先在A3输入,其次D4,再次A6。。。。。输入项值固定为1。
2024-07-01_213754.png

TA的精华主题

TA的得分主题

发表于 2024-7-1 21:51 | 显示全部楼层
建议用VBA实现

TA的精华主题

TA的得分主题

发表于 2024-7-1 22:16 | 显示全部楼层
自触发
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim ARange As Range, DRange As Range
    Dim LastA As Long, LastD As Long
    Dim ACount As Long, DCount As Long
    Dim Cell As Range
   
    Set ARange = Range("A:A")
    Set DRange = Range("D:D")
   
    Application.EnableEvents = False
   
    ' Check if change is in column A or D
    If Not Intersect(Target, ARange) Is Nothing Or Not Intersect(Target, DRange) Is Nothing Then
        ' Get the last non-empty row in column A and D
        LastA = Cells(Rows.Count, "A").End(xlUp).Row
        LastD = Cells(Rows.Count, "D").End(xlUp).Row
        
        ' Count the number of non-empty cells in column A and D
        ACount = Application.WorksheetFunction.CountA(ARange)
        DCount = Application.WorksheetFunction.CountA(DRange)
        
        ' If change is in column A
        If Not Intersect(Target, ARange) Is Nothing Then
            For Each Cell In Intersect(Target, ARange)
                If Cell.Value <> "" Then
                    Cell.Offset(0, 1).Value = ACount + DCount
                Else
                    Cell.Offset(0, 1).Value = ""
                End If
            Next Cell
        End If
        
        ' If change is in column D
        If Not Intersect(Target, DRange) Is Nothing Then
            For Each Cell In Intersect(Target, DRange)
                If Cell.Value <> "" Then
                    Cell.Offset(0, 1).Value = ACount + DCount
                Else
                    Cell.Offset(0, 1).Value = ""
                End If
            Next Cell
        End If
    End If
   
    Application.EnableEvents = True
End Sub

TA的精华主题

TA的得分主题

发表于 2024-7-1 22:16 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-9-27 22:20 , Processed in 0.035472 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表