VBA. Очистить содержимое для вставленных строк? - PullRequest
0 голосов
/ 15 апреля 2020

Итак, у меня есть код, который находит три строки и вставляет одинаковые строки под ними, но мне нужно очистить содержимое этих вставленных строк, к сожалению, выбор применяется для первых трех строк, а не для вставленных.

    Sub Add_Timber()
'
' Add_Timber Macro
'

'
    Cells.Find(What:="Timber | Zakázky:", After:=ActiveCell, LookIn:= _
        xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
        xlNext, MatchCase:=False, SearchFormat:=False).Activate
    Selection.EntireRow.Copy
    Selection.Offset(3, 0).Insert Shift:=xlDown


    Cells.Find(What:="Timber | JIRA ID:", After:=ActiveCell, LookIn:= _
        xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
        xlNext, MatchCase:=False, SearchFormat:=False).Activate
    Selection.EntireRow.Copy
    Selection.Offset(3, 0).Insert Shift:=xlDown


    Cells.Find(What:="Timber | Hodiny:", After:=ActiveCell, LookIn:= _
        xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
        xlNext, MatchCase:=False, SearchFormat:=False).Activate
    Selection.EntireRow.Copy
    Selection.Offset(3, 0).Insert Shift:=xlDown


End Sub

Таким образом, на рисунке красный блок скопирован из предыдущего, и я хочу удалить данные в строках NEW INSERTED.

1 Ответ

0 голосов
/ 16 апреля 2020

Поскольку строки всегда последовательны и находятся в одном и том же порядке, вы можете выполнить копирование / вставку за один снимок

Sub Add_Timber()

    Dim f As Range
    Set f = Cells.Find(What:="Timber | Zakázky:", After:=ActiveCell, LookIn:= _
        xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
        xlNext, MatchCase:=False, SearchFormat:=False)' try finding "Timber | Zakázky:"

    If Not f Is Nothing Then 'if succesfull
        With f.Resize(3).EntireRow ' reference found cell row along with its two consecutive ones
            .Offset(3).Insert ' insert referenced rows three rows below the referenced ones
            .Copy .Offset(3) ' copy referenced rows three rows below
        End With
    End If

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...