2016-06-22 16 views
1

Ich habe ein Eingabeblatt namens "Testfall-Input-Vorschlag", wo wir einen Wert aus einem Dropdown in den Zellen der ersten Zeile aus der 7. (J) Spalte auswählen müssen und wenn ein Wert wird zum Beispiel "ARB13" gewählt Ich möchte die Spalte ausfüllen, in der sie selektiert ist. Das Füllen der Spalte erfolgt mit zufälligen Werten. Es gibt ein Sheet namens "Admin" welches Werte in den Zellen von Spalten von A: ZZ speichert Jetzt will ich im "Testfall-Input-Vorschlag" -Bogen die Zellen der Spalte sequentiell ausfüllen, also zB für Zelle (11,7) einen Zufallswert aus Spalte A in "Admin" erzeugen für Zelle (12,7) muss der Wert von Spalte B in "Admin" für Zelle (13,7) sein, der Wert ist von Spalte C in "Admin und so weiter. Also habe ich versucht, und ich habe mit diesem CodeAktualisiere Spaltenbereich mit dem Zellenwert

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 

Wie kann ich den col-Wert für jeden i aktualisieren. Was bedeutet, dass ich für jedes I den Col-Wert um 1 erhöhen muss. Wo gehe ich falsch?

+1

ein Punkt 'Range ("col" & Rows.Count)' sollten werden unter Verwendung von Zellen() statt 'Zellen (Rows.Count, col)' ' –

Antwort

0

Definieren Sie col, bevor Sie Ihre erste Schleife starten, und setzen Sie col = col + 1 nicht in die For j = 7 to 1000 Schleife. Sonst wird col für jede j statt jeder i inkrementieren. Etwas wie folgt aus:

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) .' Ist nicht korrekt, es sei denn, das OP möchte Spalte COL. Aber ich denke, er will den Wert der Variable "col". Auch die Formel braucht vielleicht etwas Arbeit. –

Verwandte Themen