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

如图所示,不知道从哪行到哪行是合并单元格,但是想通过宏来判断并组成合并字符串!请教高手帮忙啊。我这只是举个例子。里面的文字和格式不一定是这样。可能有很多合并的单元格。这个... 如图所示,不知道从哪行到哪行是合并单元格,但是想通过宏来判断并组成合并字符串!请教高手帮忙啊。
我这只是举个例子。里面的文字和格式不一定是这样。可能有很多合并的单元格。这个直接去看当然可以了,但是因为要做大量的这样的处理 所以想用宏。
展开
 我来答
鱼木混猪哟
高粉答主

2015-11-14 · 专注Office,尤其Excel和VBA
鱼木混猪哟
采纳数:6078 获赞数:33696

向TA提问 私信TA
展开全部

代码如下:

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)'第三列等于第一列第一行合并上第二列对应各行

Next j

Else'如果不是合并单元格

Cells(i, 3) = Cells(i, 1) & Cells(i, 2)'第三列等于第一列合并第二列

End If

Next i

End Sub



详细操作步骤如下:

  1. 数据源

  2. Alt+F11,双击Sheet1,在空白VBA设计区域,复制上述代码,并点击运行,或者按F5

  3. 运行结果如下:


木叶球
2015-10-26 · TA获得超过6935个赞
知道小有建树答主
回答量:1275
采纳率:33%
帮助的人:581万
展开全部
在C列输这个公式看看效果:
=IF(A1-A2=A1,LEFT(C1,2)&B2,A2&B2)

如果你真实环境下,A列和B列的字节数是固定的话,我建议可以试试。只要根据实际情况下A列的字节数调整left函数的参数就可以了。
有疑问的话,可以再问。

注:为了简化公式,这个函数从第二行开始有效。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
waiyunclark
2010-12-29 · TA获得超过4979个赞
知道大有可为答主
回答量:4682
采纳率:75%
帮助的人:2779万
展开全部
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
With Worksheets("sheet1")
For i = 1 To .Range("A65536").End(xlUp).Row
If .Cells(i, 1).MergeCells = True Then
mergecount = .Cells(i, 1).MergeArea.Rows.Count
For j = 0 To mergecount - 1
bstring = bstring + CStr(.Cells(i + j, 2))
cstring = cstring + CStr(.Cells(i + j, 3))
Next
.Range(.Cells(i, 2), .Cells(i + j, 2)).MergeCells = True
.Cells(i, 2) = bstring
.Range(.Cells(i, 3), .Cells(i + j, 3)).MergeCells = True
.Cells(i, 3) = cstring
End If
Next
End With
Application.DisplayAlerts = True
End Sub
========================
以上VBA代码供你参考,假设对应 SHEET1 工作表,假设根据A列判断,然后合并对应的B列和C列。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友6ecc0d2d7
2010-12-29 · 超过60用户采纳过TA的回答
知道答主
回答量:145
采纳率:0%
帮助的人:135万
展开全部
我有个其他的思路,你在C列输这个公式看看效果:
=IF(A1-A2=A1,LEFT(C1,2)&B2,A2&B2)

如果你真实环境下,A列和B列的字节数是固定的话,我建议可以试试。只要根据实际情况下A列的字节数调整left函数的参数就可以了。
有疑问的话,可以再问。

注:为了简化公式,这个函数从第二行开始有效。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
865035468
2010-12-29 · 超过18用户采纳过TA的回答
知道答主
回答量:303
采纳率:0%
帮助的人:114万
展开全部
一看就知道A5到A7是合并单元格 还有C1到C7也是合并。 你认真看下 那些浅颜色格子不见了 就是合并了 看A 、B两行的格式 就知道C那一行业是合并的 。明白吗?
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式