Несколько текстовых полей в одну ячейку. Как, если во 2-м, 3-м ... текстовом поле нет значений, затем продолжить код - PullRequest
0 голосов
/ 14 апреля 2019

У меня есть 4 текстовых поля в пользовательской форме.Значения всех 4 переносятся в одну ячейку, разделенную разрывом (Char (10)) и префиксом «Error1:» string, но если только первое текстовое поле имеет значение, а остальные пустые, префикс для другого текстового поляпоявляется на клетке.Я хотел бы знать, можно ли пропустить пустые текстовые поля и не переносить их префикс в ячейку.

Я использую оператор If и "&", чтобы добавить все текстовые поля в одну ячейку.

a = Error1Box.Value
b = Error2Box.Value
c = Error3Box.Value
d = Error4Box.Value
If a = "" Then
    'Do Nothing
Else
    Cells(emptyRow, 16).Value = "Error1: " & a & Chr(10) & "Error2: " & b & Chr(10) & "Errro3: " & c & Chr(10) & "Error4: " & d
End If

Я ожидаю: если только Error1Box имеет значение, то ячейка будет Error1: description ...

, но я получаю:

Error1: Description...
Error2:
Error3:
Error4:

так что, если остальные текстовые поля пусты, их больше ничего не показывает, кроме тех, которые имеют значения.

1 Ответ

0 голосов
/ 14 апреля 2019

вы можете перебирать текстовые поля и при необходимости создавать строку ошибки:

Dim errString As String
Dim iTb As Long

For iTb = 1 To 4
    With Me.Controls("Error" & iTb & "Box")
        If .Value <> vbNullString Then errString = errString & Chr(10) & "Error" & iTb & ": " & .Value
    End With
Next
If errString <> vbNullString  Then Cells(emptyRow, 16).Value = Mid$(errString, 2)
...