excel - 合并具有相同值VBA的单元格
问题描述
我想合并具有相同值的单元格。我查看了有关此的其他主题,但没有一个是相同的。
WI05000002
WI05000002
WI05000002
WI05000002
WI05000002
WI05000002
WI05000002
WI05000002
WqP01650012
WqP01650012
WqP01650012
WqP01650012
WqP01650012
WqP01650012
WqP01650012
Sub scalanie()
Dim P As Range ' deklaracja zmiennej P
Dim komorka As Range ' deklaracja komórki
Application.DisplayAlerts = False
Set P = Selection.Cells(1, 1) ' zapamiętaj pierwszą komórkę z zaznaczenia
For Each komorka In Selection ' dla każdej komórki w zaznaczeniu
If komorka = P Then ' jeśli komórka jest taka sama jak P
Range(komorka.Offset(0, 0), P).Merge ' scal powyżej komórki do P
' zapamiętaj komórkę
End If
Next komorka ' przejdź do następnej komórki
Application.DisplayAlerts = True
End Sub
解决方案
您的代码几乎是正确的。问题是 的值P
始终设置为等于第一个单元格Set P = Selection.Cells(1, 1)
,并且永远不会改变。这就是您选择的第二部分(即WqP01650012
)不合并的原因。
尝试使用以下代码:
Sub scalanie()
Dim P As Range ' deklaracja zmiennej P
Dim komorka As Range ' deklaracja komórki
Application.DisplayAlerts = False
For Each komorka In Selection ' dla kazdej komórki w zaznaczeniu
On Error Resume Next
If komorka.Value = komorka.End(xlUp).Value Then
Range(komorka, komorka.Offset(-1, 0)).Merge
End If
On Error GoTo 0
Next komorka ' przejdz do nastepnej komórki
Application.DisplayAlerts = True
End Sub
结果:
推荐阅读
- css - 如何更改 mat-checkbox 的宽度?
- algorithm - 二叉树中深度 d 的节点数
- c++ - 如何使用 gmock 模拟 AWS::Transfer::TransferManager 类?
- java - 对 customerAddress 进行排序的最佳方法是,所有主要地址都在顶部,其他地址在底部
- reactjs - 如何在使用反应和打字稿单击添加按钮时在表格中显示添加的数据?
- python - 在另一个脚本中导入文件时导入标准库的干净方法?
- prism - Prism 8 对 Autofac 的支持
- unity3d - 从 Blender 导入 Unity 模型时缺少零件
- r - 通过 Y 列的第一个字母显示 X 列的平均值。结果令人困惑
- asp.net - 即使在 asp.net core razor 页面中选中,复选框列表也会返回 false