我在一个用户表单上有4个文本框。所有4个值的值都转移到一个由break(Char(10))和前缀“ Error1:”字符串分隔的单元格中,但是如果只有第一个文本框具有值,而其余的为空,则另一个文本框的前缀出现在单元格上。我想知道是否可以跳过空的文本框,而不是将其前缀传输到单元格。
我正在使用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:
因此,如果其余文本框为空,则除了带有值的文本框外,其他都不会显示。
答案 0 :(得分:0)
您可以遍历文本框并在适当的时候构建错误字符串:
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)