excel中关于合并单元格的VBA代码

问题1:A2是合并的单元,由A2:A3组成如何获取A2:A3这组地址A5是合并的单元如何获取A5:A7这组地址问题2:给一段代码,可以,把合并的单元格自动拆分,并且填入原... 问题1:
A2是合并的单元,由A2:A3组成
如何获取A2:A3这组地址
A5是合并的单元
如何获取A5:A7这组地址

问题2:
给一段代码,可以,把合并的单元格自动拆分,并且填入原来的数据.
谢谢.
展开
 我来答
绿衣人敲门
2015-10-13 · 知道合伙人软件行家
绿衣人敲门
知道合伙人软件行家
采纳数:18765 获赞数:63777
毕业于西北大学计算机网络技术专业,现在在西安电力学院进行网络推广维护工作!

向TA提问 私信TA
展开全部
合并单元格的名称是合并单元格范围左上角单元格的名称,在VBA中没有特别代码。
例如:A2:D5是合并单元格,将文本框TextBox1的值赋给合并单元格代码为:
Range("a2").Value = TextBox1

举例:

VBA一定可以,不过你没说清楚 a1和b1合并,c1和c2合并 然后a2和b2....... 后面是寸 C2和C3吗?C2已经和C1合并了

是 A1&B1 C1&C2 A2&B2 A3&B3 C3&C4 A4&B4

Sub Macro2()
'
' Macro2 Macro
'
Dim X As Integer, Y As Integer

X = 10 '你要合并多少列 2 是ABCD 5 是ABCDEFGHIJ合并
Y = 30 '多少行
For J = 1 To Y: For I = 1 To X: Range(Cells(J, I + I - 1), Cells(J, I + I)).MergeCells = True: Next I, J

End Sub
函安白zK
2012-04-29 · TA获得超过3994个赞
知道大有可为答主
回答量:1434
采纳率:50%
帮助的人:726万
展开全部
问题1:在VBA可以用Range.MergeArea得到其合并区域,举例,用下面语句,可以和得到A2对应的合并区域,最后R的结果为A2:A3,即R.Address="$A$2:$A$3"
Dim R As Range
Set R = Range("A2").MergeArea

问题2:下面的程序,将A13单元格的合并取消,并且将对应区域每一单元格都赋值为A13的值。供参考。
Sub MyUnmerge()
Dim R As Range, Rm As Range
Set R = Range("A13")
Set Rm = R.MergeArea
R.UnMerge
Rm.Value = R.Value
End Sub
请看是否是你需要的功能。
追问
谢谢你的分析
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
轻巧还清雅丶典范8
2012-04-29 · TA获得超过1157个赞
知道小有建树答主
回答量:792
采纳率:0%
帮助的人:428万
展开全部
Sub xxx()
If Range("a1").MergeArea.Count <> 1 Then '判断是否为合并单元格
Set ran = Range("a1").MergeArea
ran.UnMerge
ran.FormulaR1C1 = Range("a1").Value
End If
End Sub
Range("a1").MergeArea即返回合并单元格包含的区域,后面带取消合并和填入相同值,你要怎么循环看你自己怎么写了 ,要获得地址,用address属性
追问
感谢你给出的参考,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ExcelPower
2012-04-29 · 专业Excel公式图表数据分析VBA
ExcelPower
采纳数:4495 获赞数:11863

向TA提问 私信TA
展开全部
选中A列------ 撤销合并单元格(即点击合并单元格按钮) ---选中A列有数据范围 -F5----定位条件--空值---- 依次按 = 向上方向键 ctrl+enter

复制A列 右键--- 选择性粘贴--数值
追问
第一个问题,如果合并单元格是连续的,可以那样操作.中间隔了一个A15,那样操作是不可以的.
另外两个操作都希望用VBA完成
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
方括号
2012-04-29 · TA获得超过3.8万个赞
知道大有可为答主
回答量:1.7万
采纳率:55%
帮助的人:1.8亿
展开全部
问题1:
Sub MyMerge()
For i = 2 To 100
Set cel = Range("A" & i)
If cel.MergeCells Then
MsgBox cel.Address(0, 0) & ":A" & cel.MergeArea.Rows.Count + i - 1 & "为合并单元格"
i = i + cel.MergeArea.Rows.Count - 1
End If
Next
End Sub

问题2:
Sub MyUnMerge()
For i = 2 To 100
Set cel = Range("A" & i)
If cel.MergeCells Then
k = cel.MergeArea.Rows.Count - 1
Range(cel.Address(0, 0) & ":A" & cel.MergeArea.Rows.Count + i - 1).UnMerge
For j = 1 To k
cel.Offset(j, 0) = cel
Next
i = i + cel.MergeArea.Rows.Count - 1
End If
Next
End Sub
更多追问追答
追问
你好,第一段代码正常运行,
第2段代码出现错误
应用程序定义,或对象定义错误
Range(cel.Address(0, 0) & ":A" & cel.MergeArea.Rows.Count + i - 1).UnMerge
请再帮忙分析一下.
追答
在我这里没有问题。如果你有百度HI客户端,可以将文件传给我看看。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式