2017-09-12 5 views
-1

Gibt es eine Möglichkeit, dieses Stück VBA-Code effizienter zu schreiben?Wie kann ich diesen VBA-Code effizienter schreiben?

Mit der Verwendung von for-Schleifen oder so?

Und machen es allgemeiner, nicht mit den festen Zellen?

Private Sub CommandButton1_Click() 

Range("A31").Formula = "=index(Optional_Processes,1)" 
Range("A32").Formula = "=index(Optional_Processes,2)" 
Range("A33").Formula = "=index(Optional_Processes,3)" 
Range("A34").Formula = "=index(Optional_Processes,4)" 
Range("A35").Formula = "=index(Optional_Processes,5)" 
Range("A36").Formula = "=index(Optional_Processes,6)" 
Range("A37").Formula = "=index(Optional_Processes,7)" 
Range("A38").Formula = "=index(Optional_Processes,8)" 
Range("A39").Formula = "=index(Optional_Processes,9)" 
Range("A40").Formula = "=index(Optional_Processes,10)" 
Range("A41").Formula = "=index(Optional_Processes,11)" 
Range("A42").Formula = "=index(Optional_Processes,12)" 

Vielen Dank!

Antwort

4

Ein anderer Weg, um es auf einen Schlag zu tun wäre:

Private Sub CommandButton1_Click() 
    Range("A31:A42").Formula = "=index(optional_processes,row()-30)" 
End Sub 

Dies würde 1,2,3 usw. nicht als letztes Argument setzen, aber wenn es in Zeile 31 platziert wird, wird 1 (row()-30) zurückgegeben und so weiter.

2

Mit einer For Schleife, wie folgt aus:

Dim i As Long 

For i = 2 To 12 
    Range("A" & 30 + i).Formula = "=index(Optional_Processes," & i & ")" 
Next i 

2. Option:

Dim CellStart As Range 

Set CellStart = Range("A30") ' set the Start Cell anchor 

For i = 2 To 12 
    CellStart.Offset(i).Formula = "=index(Optional_Processes," & i & ")" 
Next i 
+0

Vielen Dank! –

+0

@NickKuipers du bist willkommen, jetzt kommt dein Teil, wo du als "ANTWORT" markierst, indem du auf das graue Häkchen auf der linken Seite meiner Antwort klickst (es wird grün) –

Verwandte Themen