EXCEL如何用VBA将几个单元格的数据合并到一个单元格里,并去掉重复的数字?在线等大神,跪谢,急求!

如图显示,要将D3:M3单元格里的数字合并到N3里,用“,”逗号连接起来,并去掉重复的数字只保留一个。这里要注意区别1和10.第二个是将合并的内容和B3做比较,如果B3包... 如图显示,要将D3:M3单元格里的数字合并到N3里,用“,”逗号连接起来,并去掉重复的数字只保留一个。这里要注意区别1和10.
第二个是将合并的内容和B3做比较,如果B3包含于N3,就是说B3的数字有和N3一样的,N3的单元格填充为红色。

其它行以此类推。

要用VBA来做哦,一定要用VBA。理由是D:M的数据都是VBA自动生成的,所以用公式没用。

文件我已上传百度云了,跪求编程高手帮帮忙,发挥小宇宙,拯救单身狗。。
http://pan.baidu.com/s/1pJkSBfd

再次感谢!!!
展开
 我来答
落叶l无情
推荐于2016-01-08 · TA获得超过1417个赞
知道大有可为答主
回答量:1372
采纳率:0%
帮助的人:1415万
展开全部
Sub aa()
    '排序
    arr = Range("D3:M9").Value
    For i = 1 To UBound(arr, 1)
        For j = 1 To UBound(arr, 2) - 1
            For k = j + 1 To UBound(arr, 2)
                If arr(i, k) < arr(i, j) Then
                    tmp = arr(i, j)
                    arr(i, j) = arr(i, k)
                    arr(i, k) = tmp
                End If
            Next
        Next
    Next
    
    For i = 1 To UBound(arr, 1)
        x = Cells(i + 2, 2)
        f = False
        s = arr(i, 1)
        For j = 1 To UBound(arr, 2)
            If arr(i, j) = x Then f = True  '是否填充红色
            If j > 1 Then                   '去重
                If arr(i, j) <> arr(i, j - 1) Then
                    s = s & "," & arr(i, j)
                End If
            End If
        Next
        Set rg = Range("N" & (i + 2))
        rg.Value = s
        If f Then rg.Interior.ColorIndex = 3
    Next
End Sub
追问
很简洁,不错。
追答
x=cells(i+2,2)改成x=cells(i+2,3)或者x=cells(i+2,"C")
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式