我想合并具有相同值的单元格。我查看了与此相关的其他主题,但都不相同。
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
答案 0 :(得分:0)
您的代码几乎正确。问题在于,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
结果: