对于具有功能错误的下一循环

时间:2016-11-23 15:43:53

标签: excel vba excel-vba for-loop

我正在尝试创建一个循环来更新一些" TextBox"已在Userform上创建。 问题是,当我链接行

              For y = 2 * (3 + k) To 2 * (3 + k)

使用

    For k = 0 To 7

我收到错误错误。但如果我定义y = 6,一切都很顺利。

你可以帮帮我吗?

请参阅下面的整个代码:

    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

1 个答案:

答案 0 :(得分:1)

摆脱y循环。它只会触发一次,所以每次在y循环中移动时都设置k

Sub Update_TextBox_Preco()

Dim k As Long
Dim myarray2 As Variant
Dim y As Long
Dim TextBoxUp 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
    TextBoxUp = myarray2(k)
    y = 2 * (3 + k)
    UserForm1.Controls(TextBoxUp).Value = Worksheets("PANEL").Cells(y, 45).Value
Next k

End Sub