Excel 如何将不同单元格的不同内容合并,如A1输入A,A2输入B,A3输入B,A4输入D我需要在B1单元格显示ABD?

不要高级筛选和数据的删除重复项,最好是公式,谢谢

'自定义公式-按ALT+11-插入-模块(去重合并)
Function 去重合并(a As Range)
For i = 1 To a.Rows.Count
If InStr(t, a.Cells(i, 1)) = 0 Then t = t & "," & a.Cells(i, 1)
If a.Cells(i, 1) = "" Then Exit For
Next
arr = Split(Right(t, Len(t) - 1), ",", -1, 1)
For j = 0 To UBound(arr)
去重合并 = 去重合并 & arr(j)
Next
End Function

追答

'自定义公式-按ALT+11-插入-模块(去重合并)
Function 去重合并(a As Range)
For i = 1 To a.Rows.Count
If InStr(t, a.Cells(i, 1)) = 0 And i Mod 2 = 1 Then t = t & "," & a.Cells(i, 1)
If a.Cells(i, 1) = "" Then Exit For
Next
arr = Split(Right(t, Len(t) - 1), ",", -1, 1)
For j = 0 To UBound(arr)
去重合并 = 去重合并 & arr(j)
Next
End Function

这个只会合并1/3/5/7....等单数的单元格并去重

'自定义公式-按ALT+11-插入-模块(去重合并)
Function 去重合并(a As Range)
For i = 1 To a.Rows.Count
If InStr(t, a.Cells(i, 1)) = 0 And a.Cells(i, 1).MergeCells Then t = t & "," & a.Cells(i, 1)
Next
去重合并 = Right(t, Len(t) - 1)
End Function

追问

谢谢大神不厌其烦的回答,成功解决了。果然VBA无所不能。特别想学习一下,有没有什么书可以推荐给我。向大神学习!

追答

我是自学的,但是我有c++基础,我没看过书,不懂就百度搜索

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-08-22
Sub Macro1()

' Macro1 Macro
' 宏由 Administrator 录制,时间: 2020/08/22
Columns("A:A").Copy Range("IV1")
Columns("IV:IV").RemoveDuplicates Columns:=1, Header:=xlNo
Range("B1").Formula = "=TEXTJOIN(" & """" & "" & """" & ",,IV:IV)"
Range("B1").Copy
Range("B1").PasteSpecial Paste:=xlPasteValues, Operation:=xlPasteSpecialOperationNone, SkipBlanks:=False, Transpose:=False
Columns("IV:IV").Delete

End Sub本回答被网友采纳
第2个回答  2020-08-21
你这样的操作要求估计有点难,而且你若想玩Excel公式的话,不建议你考虑这样的思路!
你这样的估计需要vba,用公式真的好麻烦噢
第3个回答  2020-08-22
代码的自定义函数也是公式哟!
相似回答