Найдите заголовок, скопируйте определенный диапазон, найдите маркер и вставьте его туда - PullRequest
1 голос
/ 27 мая 2019

У меня есть фрагмент кода, который копирует определенный диапазон из Sheet1, ищет в Sheet4 текст под названием «Маркер 1» и вставляет скопированный диапазон из Sheet1 в Sheet4, начиная с ячейки «Marker 1».

Sub FindCopyPasteV1()

    Dim FindM1 As Range
    Dim CopyM1 As Range

    With Worksheets("Sheet1").Range("A:DD")

        Set CopyM1 = Sheets("Sheet1").Range("E6:E32")

    End With

    With Worksheets("Sheet4").Range("A:DD")

        Set FindM1 = .Find(What:="Marker 1", LookAt:=xlWhole, MatchCase:=True, SearchFormat:=False)

        CopyM1.Copy FindM1

    End With

End Sub

Теперь я хочу изменить код, чтобы я мог использовать объект Range (FindH1) для выбора ячеек, которые я хочу скопировать из Sheet1.

Sub FindCopyPasteV2()

    Dim FindH1 As Range
    Dim FindM1 As Range
    Dim CopyM1 As Range

    With Worksheets("Sheet1").Range("A:DD")

        Set FindH1 = .Find(What:="Header 1", LookAt:=xlWhole, MatchCase:=True, SearchFormat:=False)

        Set CopyM1 = Sheets("Sheet1").Range("FindH1.E32") 'This doesn't work.

         'Instead of Set CopyM1 = Sheets("Sheet1").Range("E6:E32")

    End With

    With Worksheets("Sheet4").Range("A:DD")

        Set FindM1 = .Find(What:="Marker 1", LookAt:=xlWhole, MatchCase:=True, SearchFormat:=False)

        CopyM1.Copy FindM1

    End With

End Sub

1 Ответ

1 голос
/ 27 мая 2019

Вы можете использовать Resize для ссылки на диапазон, начинающийся с найденной ячейки:

Set CopyM1 = FindH1.Resize(howManyRows, howManyCols)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...