excel VBA程序,要求在合并第一列相同的单元格,以及在第一列相同的条件下,合并第二列相同的单元格 25

 我来答
azgd520
2017-07-05 · TA获得超过757个赞
知道小有建树答主
回答量:392
采纳率:80%
帮助的人:91.1万
展开全部
Sub 单元格合并()
    Dim x As Integer
    Dim rg As Range
    Set rg = Range("a2")
    For x = 2 To 14  '这里的14是A列单元格的个数,可以进行修改
        If Range("a" & x) = Range("a" & x + 1) Then  '这里的a代表A列
            Set rg = Union(rg, Range("a" & x + 1))
        Else
            Application.DisplayAlerts = False
            rg.Merge
            Application.DisplayAlerts = True
            Set rg = Range("a" & x + 1)
        End If        
    Next x        
End Sub
阳光上的桥
2016-10-16 · 知道合伙人软件行家
阳光上的桥
知道合伙人软件行家
采纳数:21423 获赞数:65813
网盘是个好东东,可以对话和传文件

向TA提问 私信TA
展开全部
把文件传到百度云(yun.baidu.com上传很简单),我把VBA写在你的文件里再回给你。
追问
追答

程序代码:

Option Explicit
Sub 合并相同行()
    Dim arr, i, j, k, st As Worksheet
    Set st = Sheets(1)
    arr = st.Cells(1, 1).CurrentRegion
    For i = UBound(arr) To 2 Step -1
        If arr(i, 1) = arr(i - 1, 1) Then
            If arr(i, 2) = arr(i - 1, 2) Then arr(i, 2) = ""
            arr(i, 1) = ""
        End If
    Next i
    Set st = Sheets(2)
    st.Cells(1, 1).Resize(UBound(arr), 3) = arr
    For j = 1 To 2
        i = UBound(arr)
        While i > 1
            If st.Cells(i, j) = "" Then
                k = st.Cells(i, j).End(xlUp).Row
                st.Range(st.Cells(k, j), st.Cells(i, j)).Merge
                i = k - 1
            Else
                i = i - 1
            End If
        Wend
    Next j
End Sub


详见附件,合并后的数据在表2中,表1的数据没有改动。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式