Неверный результат заполнения таблицы с помощью цикла - PullRequest
0 голосов
/ 15 апреля 2020

У меня есть рабочий лист с тремя таблицами, которые я хочу заполнить случайной выборкой ячеек из другого листа.

При прохождении через l oop, Table1 заполняется правильно, в то время как Table2 и Table3 имеют альтернативные результаты (то есть в каждой строке заполняется только одна таблица). Код одинаков для каждого случая, поэтому я не уверен, в чем проблема.

Код:

Sub Test()

With Sheets("600 mots")
    All_start_row = 3
    Adj_end_row = .Cells(.Rows.Count, "A").End(xlUp).Row
    Nom_end_row = .Cells(.Rows.Count, "I").End(xlUp).Row
    Verb_end_row = .Cells(.Rows.Count, "E").End(xlUp).Row

For i = 1 To 50
    adj_exer = WorksheetFunction.RandBetween(All_start_row, Adj_end_row)
    Adj_LR = Worksheets("Ejercicios").ListObjects("Table1").Range.Columns(1).Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
    Sheets("600 mots").Range("A" & adj_exer).Copy Destination:=Sheets("Ejercicios").Range("A" & Adj_LR + 1)

    verb_exer = WorksheetFunction.RandBetween(All_start_row, Verb_end_row)
    Ver_LR = Worksheets("Ejercicios").ListObjects("Table2").Range.Columns(1).Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
    Sheets("600 mots").Range("E" & verb_exer).Copy Destination:=Sheets("Ejercicios").Range("D" & Ver_LR + 1)

    nom_exer = WorksheetFunction.RandBetween(All_start_row, Nom_end_row)
    Nom_LR = Worksheets("Ejercicios").ListObjects("Table3").Range.Columns(1).Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
    Sheets("600 mots").Range("I" & nom_exer).Copy Destination:=Sheets("Ejercicios").Range("G" & Nom_LR + 1)
Next i

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