VBA: объединить диапазон с вставкой строки и слияния - PullRequest
0 голосов
/ 13 марта 2019

здесь вы видите строки для объединения определенных ячеек при вставке строки.

Range(Cells(ActiveCell.row, "H"), Cells(ActiveCell.row, "L")).mergeCells = True
Range("H" & ActiveCell.row + 1).Resize(, 5).Merge

Я хотел бы добавить значение диапазона, но я не могу найти, как или где добавить его в существующий код. диапазон в Excel равен "H3752": "L4990" , поэтому только в этом диапазоне ячейки должны объединяться, а не во всей рабочей таблице.

С уважением.

Ответы [ 2 ]

0 голосов
/ 14 марта 2019

работает как шарм!но если я защищаю файл Excel, я получаю сообщение об ошибке: «1004 при выполнении: ошибка, определенная приложением или объектом» *

0 голосов
/ 13 марта 2019

Следующий код должен работать:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Cells(Target.Row + Target.Rows.Count, Target.Item(1, 1).Column).ID = Target.Address
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Item(1, 1).ID <> "" Then
        'Code for if row is deleted
    Else
        'Code for if row is inserted
        If Target.Row >= 3752 And Target.Row <= 4990 Then
           Range(Cells(Target.Row, "H"), Cells(Target.Row, "L")).MergeCells = True
           Range("H" & Target.Row + 1).Resize(, 5).Merge
        End If
    End If
    Target.Item(1, 1).ID = ""
    Cells(Target.Row + Target.Rows.Count, Target.Item(1, 1).Column).ID = Target.Address
End Sub 

Чтобы изменить строки, которые вы смотрите, вы можете изменить эту строку: If Target.Row >= 3752 And Target.Row <= 4990 Then Если вы пытаетесь изменить столбцы, вы можете изменить эти буквы в этомраздел:

Range(Cells(Target.Row, "H"), Cells(Target.Row, "L")).MergeCells = True
Range("H" & Target.Row + 1).Resize(, 5).Merge
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...