копировать данные из объединенных ячеек по нажатию vba - PullRequest
0 голосов
/ 06 апреля 2020

Я использую приведенный ниже код для копирования данных ячейки (диапазон F1: H19) при нажатии и вставке их в последний ряд другой таблицы той же книги. Это работает, но проблема в том, что когда я нажимаю на объединенные ячейки, ничего не происходит. как время, когда клетки пусты.

Не могли бы вы помочь мне.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("f1:h19")) Is Nothing Then
If Target.Cells.Count > 1 Or IsEmpty(Target) Then Exit Sub
Cancel = True
Dim Lastrow As Long
Lastrow = Sheets("sheet1").Cells(Rows.Count, "C").End(xlUp).Row + 1
Target.Copy Sheets("sheet1").Cells(Lastrow, 3)
End If
End Sub

1 Ответ

2 голосов
/ 06 апреля 2020

Ничего не происходит, потому что если Target является объединенной ячейкой, то Target.Cells.Count больше 1.

Я бы изменил вашу логику c, используя Range.MergeCells чтобы определить, была ли нажата объединенная ячейка:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Intersect(Target, Me.Range("f1:h19")) Is Nothing Then Exit Sub

    If Not Target.MergeCells Then
        If Target.Cells.Count > 1 Or IsEmpty(Target) Then Exit Sub
    Else
        If IsEmpty(Target.Cells(1, 1)) Then Exit Sub
    End If

    Cancel = True
    Dim Lastrow As Long
    Lastrow = Sheets("sheet1").Cells(Rows.Count, "C").End(xlUp).Row + 1

    Target.Cells(1, 1).Copy Sheets("sheet1").Cells(Lastrow, 3)
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...