Хотя цикл для ввода из нескольких texbox - PullRequest
0 голосов
/ 01 апреля 2019

У меня есть 20 textBox на пользовательской форме vba. Предполагается, что эти textBox-ы должны брать свои значения из считывателя штрих-кода, и я создал цикл 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 Ответ

1 голос
/ 01 апреля 2019

Будет публиковаться как ответ, чтобы его можно было пометить как таковое, хотя я перечислил это в комментарии:

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)

и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...