【发布时间】:2023-03-27 09:05:01
【问题描述】:
我在 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
- 在 D 列中插入的数量在下一行 B 列中重复
- 即使文本框是空的,它仍在放置数据正如您在红色突出显示的部分中看到的那样
【问题讨论】:
-
你正在使用 J+1 和 J+2,所以当 J 迭代时,你的新 J+1 = 旧 J+2
-
您真正想要发生什么?看起来你在说 B = 文本框 1,D = 文本框 2,然后你迭代和 B = 文本框 2,D = 文本框 3。我假设你想要一些修饰符来增加 J 更高,例如,B = 2*J+1和 D = 2*J+2 什么的
-
是的,我实际上是这样做的,因为我必须从一行的 2 个文本框中获取输入,并且 TextBoxes 不是按顺序排列的,而是以奇数和偶数排列的,所以它类似于 Textbox1 和 Textbox2 一行,然后是 TextBox3另一个是 TextBox4。