#新建宏执行下列代码,是合并B列的
Sub test()
Dim Rng As Range, Dic As Object, Arr, N&Set Dic = CreateObject("scripting.dictionary") '创建字典项目
'循环a1所在列要处理的数据区 For Each Rng In Range("a1", Range("a1").End(xlDown))
If Rng <> "" Then '如果单元格不为空,则
If Dic.exists(Rng.Value) Then '如果已存在该单元格内容对应的字典项目,则将当前单元格与已存在内容进行组合
Set Dic(Rng.Value) = Union(Dic(Rng.Value), Rng)
Else '否则进行添加
Set Dic(Rng.Value) = Rng
End If
End If
Next Rng
If Dic.Count > 0 Then '如果字典项目数大于0,则
Arr = Dic.keys '将字典的key赋值给数组
Application.DisplayAlerts = False '关闭警告信息(合并单元格时会弹出警告信息,通过此命令禁止弹出该信息)
For N = LBound(Arr) To UBound(Arr) '循环数组各项(即字典的keys集)
For Each Rng In Dic(Arr(N)).Areas '循环字典中对应项的item项所存储的单元格区域的各个区域范围
If Rng.Cells.Count > 1 Then Rng.Merge '如果范围中不止一个单元格,则该范围进行合并
Next Rng
Next N
Application.DisplayAlerts = True '打开警告作息
End If
Set Dic = Nothing '清空字典项目
End Sub
#补充资料
End 属性
参阅应用于示例特性返回一个 Range 对象,该对象代表包含源区域的区域尾端的单元格。等同于按键 End+ 向上键、End+ 向下键、End+ 向左键或 End+ 向右键。Range 对象,只读。
expression.End(Direction)
expression 必需。 该表达式返回“应用于”列表中的对象之一。
Direction XlDirection 类型,必需。所要移动的方向。
XlDirection 可为 XlDirection 常量之一。
xlDown
xlToRight
xlToLeft
xlUp
示例
本示例选定包含单元格 B4 的区域中 B 列顶端的单元格。
Range("B4").End(xlUp).Select
本示例选定包含单元格 B4 的区域中第 4 行尾端的单元格。
Range("B4").End(xlToRight).Select
本示例将选定区域从单元格 B4 延伸至第四行最后一个包含数据的单元格。
Worksheets("Sheet1").Activate
Range("B4", Range("B4").End(xlToRight)).Select