吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1279|回复: 16
上一主题 下一主题
收起左侧

[其他原创] [VBA] Excel/WPS 给一列插入序号,支持合并单元格

  [复制链接]
跳转到指定楼层
楼主
ittech 发表于 2024-7-14 15:31 回帖奖励
本帖最后由 ittech 于 2024-7-14 15:40 编辑

众所周知,Excel里给含有合并单元格的列插入序号时不是很方便,直接拖拽肯定是错的。
这种情况应该会经常碰到,网上呢有一些用公式解决的我自己试了一下并不理想,还是VBA简单粗暴。
新建个宏运行即可,大家应该都会哈。




此时,通过使用VBA代码,可以完美解决此问题,如图所示




代码直接放下边喽。

Sub FillSerialNumbersConsecutively()
    Dim rng As Range
    Dim cell As Range
    Dim serialNum As Long

    ' 弹出窗口让用户选择范围
    Set rng = Application.InputBox("请选择填充序号的范围(例如A1:A100):", "选择范围", Type:=8)
    If rng Is Nothing Then
        MsgBox "未选择范围,序号填充已取消。"
        Exit Sub
    End If

    ' 初始化序号
    serialNum = 1

    ' 按行遍历用户选择的范围
    For Each cell In rng
        ' 如果当前单元格是合并单元格的一部分,则跳过,直到遇到合并单元格的起始单元格
        If cell.MergeCells Then
            If cell.Address = cell.MergeArea(1, 1).Address Then
                ' 为合并单元格的起始单元格分配序号
                cell.Value = serialNum
                serialNum = serialNum + 1
            End If
        Else
            ' 为非合并单元格分配序号
            cell.Value = serialNum
            serialNum = serialNum + 1
        End If
    Next cell
End Sub

免费评分

参与人数 6吾爱币 +12 热心值 +6 收起 理由
0jiao0 + 1 + 1 谢谢@Thanks!
SmallRadar + 1 + 1 我很赞同!
supernox + 1 + 1 我很赞同!
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
xushengld1 + 1 + 1 谢谢@Thanks!
xingdh + 1 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

推荐
lisongmei 发表于 2024-7-15 10:07
用公式也挺简单的 =COUNTA($G$1:G1)+1
推荐
236560739 发表于 2024-7-18 11:57
大佬,能不能出个合并Excel的代码,工作会遇到把中文表格翻译成中英文,目前我说把中文表格丢谷歌翻译,然后得到英文表格,然后用的python进行合并,但是格式全乱了。
3#
xingdh 发表于 2024-7-14 21:49
4#
jori 发表于 2024-7-14 22:01
还是VBA简单粗暴,这种优秀的代码多贴几贴,尤其与工程预算计算相关的
5#
SmallRadar 发表于 2024-7-14 22:02
支持原创代码,以前都是用ff格子工具,
6#
xushengld1 发表于 2024-7-14 22:09
真不错,以前我都是一个一个敲
7#
meigui6431 发表于 2024-7-14 23:11
先生大义,感谢分享
8#
 楼主| ittech 发表于 2024-7-15 09:18 |楼主
SmallRadar 发表于 2024-7-14 22:02
支持原创代码,以前都是用ff格子工具,

FF格子那个序号功能我也试过了,它只能排除空行,面对合并单元格会按自然行数填,比如1、3、8这样的,序号不连续。
9#
supernox 发表于 2024-7-15 11:22
非常感谢。。。
10#
 楼主| ittech 发表于 2024-7-15 18:59 |楼主
lisongmei 发表于 2024-7-15 10:07
用公式也挺简单的 =COUNTA($G$1:G1)+1

谢谢回复,,公式也ok的

只不过公式还要在fx(输入栏)ctrl+回车,,而且就我的经验来看在办公场所,发的表能不带公式最好不带,还有就是公式对于单元格格式有要求
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 09:39

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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