Ich versuche, eine Schleife zu erstellen, um einige "TextBox" zu aktualisieren, die bereits in Userform erstellt wurden. Das Problem ist, dass, wenn ich die Zeile LinkFor Next Loop mit Funktionsfehler
For y = 2 * (3 + k) To 2 * (3 + k)
Mit
For k = 0 To 7
ich einen Mismatch Fehler. Aber wenn ich y = 6 definiere, läuft alles gut.
Können Sie mir helfen?
Bitte finden Sie unten den gesamten Code:
Sub Update_TextBox_Preco()
Dim k As Double
Dim myarray2 As Variant
Dim y As Double
Dim Textbox As String
Dim Textbox_1 As String
Dim line As Variant
Array with contained TextBox names
myarray2 = Array("TextBox_Moeda_Atual", "TextBox_Medida_Atual", "TextBox_Acond_Atual", "TextBox_Lote_Atual", _
"TextBox_Incoterm_Atual", "TextBox_p_liq_atual", "TextBox_encargo_atual", "TextBox_Frete_Atual")
For k = 0 To 7
Textbox = myarray2(k)
For y = 2 * (3 + k) To 2 * (3 + k)
UserForm1.Controls(Textbox).Value = Worksheets("PANEL").Cells(y, 45).Value
Next y
Next k
End Sub
Ich habe gerade versucht und habe keinen Fehler bekommen, wo ist der Fehler passiert? Ihre zweite Schleife produziert nur 6,8,10,12,14,16,18 und 20, also warum nicht eine Variable y haben, beginnend bei 6 jedes Mal um 2 inkrementieren? –
@Nathan_Sav Die Schleife/Sequenz, die einen Fehler gibt, ist der 'For y = 2 * (3 + k) bis 2 * (3 + k)', der für For 'k = 0 bis 7' verknüpft ist. Aber wenn ich zum Beispiel 'Für y = 6 bis 6 'setze, geht es normal. –
Sie sollten wahrscheinlich 'Dim'' k' und 'y' als' Long' anstelle von 'Double' verwenden. Es kann zu Rundungsfehlern kommen? – bobajob