Я пытаюсь получить макрос, чтобы объединить ячейки с повторяющимися данными. Он будет работать с небольшим количеством ячеек, но я получаю следующую ошибку, если попытаюсь запустить ее в большей группе ячеек. Я не уверен, есть ли более эффективный способ для excel, чтобы справиться с этим.Слияние ячеек с повторяющимися данными VBA
Ошибка выполнения «1004»: Метод «Range» объекта «_global» не удалось
Вот код:
Sub MergeDuplicates()
Dim varData As Variant, varContent As Variant
Dim strMyRange As String
Application.ScreenUpdating = False
Application.DisplayAlerts = False
strMyRange = ActiveCell.Address
varContent = ActiveCell.Value
For Each varData In Selection.Cells
If varData.Value <> varContent Then
strMyRange = strMyRange & ":" & Cells(varData.Row - 1, varData.Column).Address & ", " & Cells(varData.Row, varData.Column).Address
varContent = Cells(varData.Row, varData.Column).Value
End If
Next
strMyRange = strMyRange & Mid(Selection.Address, InStr(1, Selection.Address, ":"), Len(Selection.Address))
Range(strMyRange).Merge
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
'Dim varData, как Range' и' varContent в String'? В противном случае, на какой строке вы получаете ошибку? –
Кроме того, я хотел бы рассмотреть ['избегать использования .Select/.ActiveCell'] (http://stackoverflow.com/questions/10714251/how-to-avoid-using-select-in-excel-vba -macros), что также может вызвать некоторые проблемы. – BruceWayne
Объединенные клетки - величайшее зло в Excel и VBA. Не используйте его. –