Цикл по листу Excel - PullRequest
       1

Цикл по листу Excel

0 голосов
/ 01 октября 2018

Я работаю с двумя рабочими книгами.Во-первых, я ищу значение в ячейке справа от «Charge Number».Возьмите это значение и найдите во второй сводной таблице рабочих книг соответствующую строку, скопируйте ее и вернитесь в первую рабочую книгу и вставьте данные.Это прекрасно работает один раз.Но я не могу заставить цикл искать следующий экземпляр «Charge Number» и повторять процесс.Цикл, который я имею в коде, неправильный, потому что он находит первое значение в порядке, но затем ищет в каждой следующей строке тот же номер заряда.

Sub FindChargeNo()

    Dim Loc As Range
    Dim ChgNum As String
    Dim SrchRng2 As String
    Dim pvt As PivotTable
    Dim wb As Workbook, ws As Worksheet

    Dim FstWB As Workbook
    Dim SecWB As Workbook
    Dim rng As Range

    Set FstWB = Workbooks("First.xlsm")
    Set SecWB = Workbooks("Second_test.xlsx")
    Set ws1 = FstWB.Worksheets("New Development")
    Set ws = SecWB.Worksheets("Aug 18 Report")
    Set pvt = ws.PivotTables(1)

    lastRow = FstWB.Worksheets("New Development").Range("J" & Rows.Count).End(xlUp).Row

    For i = 1 To lastRow
        Set Loc = ws1.Cells.Find(What:="Charge Number")
        If Not Loc Is Nothing Then
            ChgNum = Loc.Offset(0, 1).Value
            Debug.Print ChgNum
            Debug.Print SrchRng

            With pvt.PivotFields("Project WBS").PivotItems(ChgNum).LabelRange
                Set rng = ws.Range(.Resize(.Rows.Count, pvt.TableRange1.Columns.Count).Address)
                ws.Range(rng.Address).Copy
            End With

            SrchRng2 = Loc.Offset(0, 5).Address
            FstWB.Worksheets("New Development").Range(SrchRng2).PasteSpecial

        Set Loc = ws1.Cells.FindNext(Loc)
        Loop While Loc.Address <> firstAddress
        End If
    Next

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