Как получить вложенный l oop для перехода к следующему набору данных в VBA - PullRequest
0 голосов
/ 25 марта 2020

У меня есть лист (CAT), где я пытаюсь скопировать 15 строк из 8 столбцов данных в одну строку на другом листе (Transpose). У меня есть несколько вложенных циклов, где мне нужен один из моих циклов, чтобы перейти к следующему набору из 15 строк на рабочем листе CAT (rowIndex). Вместо этого код возвращается к первым 2-16 строкам и каждый раз заполняет одни и те же 15 строк. Я пробовал несколько итераций добавления rowIndex = rowIndex + 15, но это, похоже, ничего не делает. Может кто-нибудь помочь мне с тем, что я делаю неправильно?

    For rowTranspose = 2 To 3 'move down one row when first row is filled in Transpose sheet
       For colTranspose = 8 To 120 Step 8 'write data from columns 8 to 15 and rows 2 to 16 (colIndex, rowIndex) in columns 8 through 120 of Transpose sheet
           For rowIndex = 2 To 16 'loop through rows 2 through 16
               For colIndex = 8 To 15 'loop through columns 8 through 15
                    Transpose.Cells(rowTranspose, colTranspose) = CAT.Cells(rowIndex, colIndex) 'copy CAT worksheet values to rowTranspose and colTranspose values
                    colTranspose = colTranspose + 1 'move the columns over so that the CAT info copies to the correct column
               Next colIndex
           Next rowIndex
       Next colTranspose
       rowIndex = rowIndex + 15
    Next rowTranspose

1 Ответ

0 голосов
/ 25 марта 2020

Значение rowIndex устанавливается l oop, поэтому rowIndex = rowIndex + 15 ничего не делает. Добавьте другую переменную с именем rowOffset и добавьте ее в rowIndex.

    rowOffset = 0
    For rowTranspose = 2 To 3 'move down one row when first row is filled in Transpose sheet
        For colTranspose = 8 To 120 Step 8 'write data from columns 8 to 15 and rows 2 to 16 (colIndex, rowIndex) in columns 8 through 120 of Transpose sheet
            For rowIndex = 2 To 16 'loop through rows 2 through 16
                For colIndex = 8 To 15 'loop through columns 8 through 15
                    Transpose.Cells(rowTranspose, colTranspose) = CAT.Cells(rowIndex + rowOffset, colIndex) 'copy CAT worksheet values to rowTranspose and colTranspose values
                    colTranspose = colTranspose + 1 'move the columns over so that the CAT info copies to the correct column
                Next colIndex
            Next rowIndex
        Next colTranspose
        rowOffset = rowOffset + 15
    Next rowTranspose
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...