VBA Сетка для петли - PullRequest
       3

VBA Сетка для петли

0 голосов
/ 08 июня 2018

Я пытаюсь получить два цикла for-next.

For j = 2 To rownum 'rownum=502
        For k = 3 To 7 Step 1 'ref_row step 1
        Workbooks(tdrname).Worksheets("CatSh").range("D" & CStr(j + 1)) _
            = j 'Workbooks(tdrname).Worksheets("Transaction in Specified Period").range("P" & j).Value
        Workbooks(tdrname).Worksheets("CatSh").range("E" & CStr(j + 1)) _
            = k 'Workbooks(tdrname).Worksheets("CatSh").range("B" & k).Value
    Next k
Next j

То, что я получаю на листе "CatSh", - это число циклов J после того же номера, которое является последним числомк.

Кто-нибудь знает, что происходит?

1 Ответ

0 голосов
/ 08 июня 2018

Вам необходимо учитывать j И k при выборе строки для записи.

Возможно, это смещение меньше, чем вы хотите, поэтому вам потребуетсячтобы настроить его, но если вы хотите, чтобы каждый элемент записывался последовательно без пробелов, то должно работать следующее:

For j = 2 To rownum 'rownum = 502
        For k = 3 To 7 Step 1 'ref_row step 1
        Workbooks(tdrname).Worksheets("CatSh").Range("D" & CStr((j * (7 - 3 + 1)) + k)) _
            = j 'Workbooks(tdrname).Worksheets("Transaction in Specified Period").range("P" & j).Value
        Workbooks(tdrname).Worksheets("CatSh").Range("E" & CStr((j * (7 - 3 + 1)) + k)) _
            = k 'Workbooks(tdrname).Worksheets("CatSh").range("B" & k).Value
    Next k
Next j

Обратите внимание, что 7 - 3 в CStr((j * (7 - 3 + 1)) + k)) также потребуется настроитьесли вы измените For k = 3 To 7 Step 1 часть определения вашего цикла.

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