Excel-VBA-Inkrementierung der variable in for-Schleife

Bin ich mir noch einen neuen Lernenden der VBA-Programmierung, und ich bin gekommen, über ein Problem, dass ich kann nicht scheinen, um eine Lösung zu finden. Ich versuche eine Arbeitsmappe zu verarbeiten-Rezepte. Ich rufe ein Formular Benutzer hinzufügen, ein Rezept in ein makro mit mehreren text-box Eingänge (~96). Wenn ich geben Sie alle Zutaten, Menge, Einheiten und drücken Sie die Taste OK, ich will es zu schreiben, was in der user form in das Arbeitsblatt. Alle Textfelder benannt sind, enden mit einer Zahl in aufsteigender Reihenfolge (zB .txtIngredient1, .txtIngredient2, ...). Ist es möglich, eine for-Schleife verwenden, kopieren Sie die Mich.txtIngredientX.Wert auf einen Bereich in einem Blatt?

Einen Ausschnitt aus meinem derzeitigen code:

Sheets("Recipes").Range("B" & addatrow + 0) = Me.txtIngredient1.Value
Sheets("Recipes").Range("B" & addatrow + 1) = Me.txtIngredient2.Value
Sheets("Recipes").Range("B" & addatrow + 2) = Me.txtIngredient3.Value
Sheets("Recipes").Range("B" & addatrow + 3) = Me.txtIngredient4.Value
Sheets("Recipes").Range("B" & addatrow + 4) = Me.txtIngredient5.Value
Sheets("Recipes").Range("B" & addatrow + 5) = Me.txtIngredient6.Value
Sheets("Recipes").Range("B" & addatrow + 6) = Me.txtIngredient7.Value
Sheets("Recipes").Range("B" & addatrow + 7) = Me.txtIngredient8.Value
Sheets("Recipes").Range("B" & addatrow + 8) = Me.txtIngredient9.Value
Sheets("Recipes").Range("B" & addatrow + 9) = Me.txtIngredient10.Value
Sheets("Recipes").Range("B" & addatrow + 10) = Me.txtIngredient11.Value
Sheets("Recipes").Range("B" & addatrow + 11) = Me.txtIngredient12.Value
Sheets("Recipes").Range("B" & addatrow + 12) = Me.txtIngredient13.Value

Habe ich versucht, das einzige, was ich weiß, zu tun, das ist so etwas wie dieses:

for i = 1 to 32
    Sheets("Recipes").Range("B" & addatrow - 1 + i) = me.txtIngredient & i.value

welches nicht funktioniert. Hinweis: addatrow ist eine variable in dem makro, die bestimmt, wo das nächste Rezept eingefügt werden soll.

Jede Hilfe wird sehr geschätzt!

Dank!

einfach Fragen, wenn range("B" & addatrow - 1 + i) sein, nicht wahr range("B" & (addatrow - 1 + i)) ?? Auch Sie könnte verwenden Cells (addatrow - 1 + i,2)

InformationsquelleAutor Brian Mixon | 2014-11-06

Schreibe einen Kommentar