Искать в файле Excel 2 строки, копировать и вставлять на новый лист - PullRequest
0 голосов
/ 13 ноября 2018

Я новичок в VBA и пытаюсь написать код, где он ищет строку в листе Excel.Когда он находит ее (начальная позиция), ищет другую строку и находит ее (конечная позиция), копирует все строки между этими двумя и копирует их на новый лист.

Каждая копируемая строка имеет 3 столбцаа также его нужно скопировать / вставить.

Я пытался изменить некоторые коды здесь, а некоторые с YouTube, но мне не повезло.Это код, который я до сих пор.Спасибо за любую помощь, которую вы можете предложить

Employee = Sheet1.Cells(5, 1)
TTI = Sheet1.Cells(3, 1)
Dim rng As Range
Dim Employee As String
Dim rownumber As Long

Set rng = Sheet1.Columns("A:A").Find(What:=Employee, _
    LookIn:=x1Formulas, LookAt:=x1Whole, SearchOrder:=x1byRows, _
    SearchDirection:=x1Next, MatchCase:=False, SearchFormat:=False)
    rownumber = rng.Row
    rng = Sheet1.Columns("rownumber,A:A").Find(What:=TTI, _
    LookIn:=x1Formulas, LookAt:=x1Whole, SearchOrder:=x1byRows, _
    SearchDirection:=x1Next, MatchCase:=False, SearchFormat:=False)
    rownumber2 = rng.Row

Sheet2.Cells(2, 1).String = Sheet.Cells("rownumber, 1:rownumber2, 1").String

Когда я пытаюсь запустить код, все, что я получаю, это ошибка времени выполнения

1 Ответ

0 голосов
/ 14 ноября 2018

Вы можете использовать приведенный ниже код в качестве шаблона для вашего макроса, некоторые диапазоны, возможно, придется настроить в соответствии с вашими потребностями.

Sub test()

    Dim iRowStart As Integer, iRowEnd As Integer, iCol As Integer

    iCol = 7

    iRowEnd = FindString("To", iCol)
    iRowStart = FindString("From", iCol)


    ActiveSheet.Range(Cells(iRowStart, iCol), Cells(iRowEnd, iCol)).Copy Destination:=Sheet2.Range("A2")
    ActiveSheet.Cells(iRowStart, 1).Select

End Sub


Function FindString(str As String, iCol As Integer) As Integer
    Dim c As Range
    Dim rSearch As Range

    Set rSearch = ActiveSheet.Columns(iCol)

    With rSearch
        Set c = .Find(str, LookIn:=xlValues)
        If Not c Is Nothing Then
            FindString = c.Row
        End If
    End With
End Function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...