从多个texbox输入的While循环

时间:2019-04-01 13:03:14

标签: excel vba

我在vba用户窗体上有20个文本框,这些文本框应该从条形码读取器获取它们的值,我创建了一个while循环来从这些文本框获取值,并在下一个空行中输入它们,但是当我检查结果我遇到2个问题

J = 0
While J < 20
LastRow = ws.Range("A" & Rows.Count).End(xlUp).Row + 1 
ws.Range("A" & LastRow).Value = Now()
ws.Range("B" & LastRow).Value = Me.Controls("TextBox" & J + 1).Value 
ws.Range("D" & LastRow).Value = Me.Controls("TextBox" & J + 2).Value 
ws.Range("I" & LastRow).Value = TextBox21.Value
J = J + 1
Wend
  1. 在D列上插入的数量在下一行B列上重复
  2. 即使文本框为空,也仍在放置数据,如红色突出显示的

1 个答案:

答案 0 :(得分:1)

尽管我在评论中列出了该问题,但仍会以此为答案,以便将其标记为这样:

J = 0
While J < 20
    LastRow = ws.Range("A" & Rows.Count).End(xlUp).Row + 1 
    ws.Range("A" & LastRow).Value = Now()
    ws.Range("B" & LastRow).Value = Me.Controls("TextBox" & J*2 + 1).Value 
    ws.Range("D" & LastRow).Value = Me.Controls("TextBox" & J*2 + 2).Value 
    ws.Range("I" & LastRow).Value = TextBox21.Value
    J = J + 1
Wend

此后可能要检查您的J max ...

第1行使用J = 0,因此文本框1,文本框2

第2行使用j = 1,因此文本框1 * 2 + 1(3)和文本框1 * 2 + 2(4)

第3行使用j = 2,因此文本框2 * 2 + 1(5)和文本框2 * 2 + 2(6)