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
再次感谢!!! 展开
第二个是将合并的内容和B3做比较,如果B3包含于N3,就是说B3的数字有和N3一样的,N3的单元格填充为红色。
其它行以此类推。
要用VBA来做哦,一定要用VBA。理由是D:M的数据都是VBA自动生成的,所以用公式没用。
文件我已上传百度云了,跪求编程高手帮帮忙,发挥小宇宙,拯救单身狗。。
http://pan.baidu.com/s/1pJkSBfd
再次感谢!!! 展开
1个回答
展开全部
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")
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询