[VBA] Excel/WPS 给一列插入序号,支持合并单元格
本帖最后由 ittech 于 2024-7-14 15:40 编辑众所周知,Excel里给含有合并单元格的列插入序号时不是很方便,直接拖拽肯定是错的。
这种情况应该会经常碰到,网上呢有一些用公式解决的我自己试了一下并不理想,还是VBA简单粗暴。
新建个宏运行即可,大家应该都会哈。
https://pic.imgdb.cn/item/6693807ed9c307b7e97f306b.gif
此时,通过使用VBA代码,可以完美解决此问题,如图所示
https://pic.imgdb.cn/item/66938011d9c307b7e97ea040.gif
代码直接放下边喽。
```
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
``` 用公式也挺简单的 =COUNTA($G$1:G1)+1 大佬,能不能出个合并Excel的代码,工作会遇到把中文表格翻译成中英文,目前我说把中文表格丢谷歌翻译,然后得到英文表格,然后用的python进行合并,但是格式全乱了。 好用好用,强力支持! 还是VBA简单粗暴,这种优秀的代码多贴几贴,尤其与工程预算计算相关的 支持原创代码{:1_921:},以前都是用ff格子工具, 真不错,以前我都是一个一个敲 先生大义,感谢分享 SmallRadar 发表于 2024-7-14 22:02
支持原创代码,以前都是用ff格子工具,
FF格子那个序号功能我也试过了,它只能排除空行,面对合并单元格会按自然行数填,比如1、3、8这样的,序号不连续。 非常感谢。。。 lisongmei 发表于 2024-7-15 10:07
用公式也挺简单的 =COUNTA($G$1:G1)+1
谢谢回复,,公式也ok的{:1_893:}
只不过公式还要在fx(输入栏)ctrl+回车,,而且就我的经验来看在办公场所,发的表能不带公式最好不带,还有就是公式对于单元格格式有要求
页:
[1]
2