2016-06-22 2 views
1

У меня есть входной лист, называемый «Testfall-Input-Vorschlag», где мы должны выбрать значение из выпадающего списка в ячейках первой строки из столбца 7-го (J) и когда значение выбирается, например, «ARB13». Я хочу заполнить столбец, в котором он выбран. Заполнение столбца осуществляется со случайными значениями. Существует лист «Admin», который имеет значения, хранящиеся в ячейках столбцов из A: ZZ Теперь я на листе «Testfall-Input-Vorschlag» хочу заполнить ячейки столбца последовательно. Это означает, например, для ячейки (11,7), я хочу сгенерировать случайное значение из столбца A в «Admin», для ячейки (12,7) значение должно быть из столбца B в «Admin» для ячейки (13,7), значение из столбца C в «Admin» и т. д. Так что я пытался, и у меня появился этот код.Обновление диапазона столбцов со значением ячейки

Sub ARB13() 


Dim col As Integer 


For i = 11 To 382 


For j = 7 To 1000 


If Sheets("Testfall-Input_Vorschlag").Cells(1, j) = "ARB13" Then 
col = 0 
col = col + 1 
LB = 2 
    UB = Sheets("Admin").Range("col" & Rows.Count).End(xlUp).Row 
    Cells(i, j).Select 
    ActiveCell.FormulaR1C1 = Sheets("Admin").Range("Y" & Int((UB - LB + 1) *  Rnd + LB)) 


End If 
Next j 
Next i 
End Sub 

Как обновить значение col для каждого i. Это означает, что для каждого i мне нужно, чтобы значение col увеличилось на 1. Где я ошибаюсь?

+1

один пункт 'Range ("Col" и Rows.Count)' должны использовать клетки() вместо 'Cells (Rows.Count, цв)' ' –

ответ

0

Определите col, прежде чем вы начнете свой первый цикл, и не ставьте col = col + 1 в петлю For j = 7 to 1000. В противном случае col будет увеличиваться на каждые j вместо каждых i. Что-то вроде этого:

Sub ARB13() 
    Dim col as Long 
    Dim i as Long 
    Dim j as Long 

    col = 0 

    For i = 11 To 382 
     For j = 7 to 1000 
      LB = 2 
      UB = Sheets("Admin").Cells(Rows.count, col).End(xlUp).row 
      Cells(i, j).Select 
      ActiveCell.FormulaR1C1 = Sheets("Admin").Range("Y" & Int((UB - LB + 1) * Rnd + LB)) 
     Next j 

     col = col +1 
    Next i 
End Sub 
+2

.Range ("Col" & Rows.count). Не правильно, если OP не хочет столбца COL. Но я думаю, что он хочет значение переменной 'col'. Кроме того, эта формула может потребовать небольшой работы. –

Смежные вопросы