excel中如何用宏判断是否是合并单元格,以及合并的行数或列数?

[复制链接]
查看11 | 回复5 | 2015-11-14 14:31:44 | 显示全部楼层 |阅读模式
如图所示,不知道从哪行到哪行是合并单元格,但是想通过宏来判断并组成合并字符串!请教高手帮忙啊。
我这只是举个例子。里面的文字和格式不一定是这样。可能有很多合并的单元格。这个直接去看当然可以了,但是因为要做大量的这样的处理 所以想用宏。

回复

使用道具 举报

千问 | 2015-11-14 14:31:44 | 显示全部楼层
代码如下:Sub main()For i = 1 To Range("A1").End(xlDown).Row'取A列最大行数,并从1到最大行数循环If Range("A" & i).MergeCells = True Then'如果单元格为合并单元格For j = 1 To Range("A" & i).MergeArea.Count'从1到合并单元格的数量循环Cells(i + j - 1, 3) = Cells(i, 1) & Cells(i + j - 1, 2)'第三列等于第一列第一行合并上第二
回复

使用道具 举报

千问 | 2015-11-14 14:31:44 | 显示全部楼层
在C列输这个公式看看效果:=IF(A1-A2=A1,LEFT(C1,2)&B2,A2&B2)如果你真实环境下,A列和B列的字节数是固定的话,我建议可以试试。只要根据实际情况下A列的字节数调整left函数的参数就可以了。有疑问的话,可以再问。注:为了简化公式,这个函数从第二行开始有效。
回复

使用道具 举报

千问 | 2015-11-14 14:31:44 | 显示全部楼层
Sub test()
Application.DisplayAlerts = False
Dim i As Long
Dim j As Integer
Dim bstring As String
Dim cstring As String
Dim mergecount As Integer
回复

使用道具 举报

千问 | 2015-11-14 14:31:44 | 显示全部楼层
我有个其他的思路,你在C列输这个公式看看效果:=IF(A1-A2=A1,LEFT(C1,2)&B2,A2&B2)如果你真实环境下,A列和B列的字节数是固定的话,我建议可以试试。只要根据实际情况下A列的字节数调整left函数的参数就可以了。有疑问的话,可以再问。注:为了简化公式,这个函数从第二行开始有效。
回复

使用道具 举报

千问 | 2015-11-14 14:31:44 | 显示全部楼层
一看就知道A5到A7是合并单元格还有C1到C7也是合并。 你认真看下 那些浅颜色格子不见了 就是合并了看A 、B两行的格式 就知道C那一行业是合并的 。明白吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行