我如何检查列表框的一行是否为空
How would I check if a row of a Listbox is empty
我正在尝试在 VBA 中编写 IF 语句以确定列表框行的第一列是否为空。
如果该行为空,我希望显示一个消息框。如果该行不为空,则该行将保存到内存中。
到目前为止我的代码:
Private Sub RiskLogReviewListBox_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
With RiskLogReviewListBox
If IsNull(Me.RiskLogReviewListBox, 0, 0) Then
MsgBox "Item is not a Valid Entry"
Else
str1$ = .List(.ListIndex, 0)
str2$ = .List(.ListIndex, 1)
str3$ = .List(.ListIndex, 2)
str4$ = .List(.ListIndex, 3)
str5$ = .List(.ListIndex, 4)
str6$ = .List(.ListIndex, 5)
str7$ = .List(.ListIndex, 6)
str8$ = .List(.ListIndex, 7)
str9$ = .List(.ListIndex, 8)
str10$ = .List(.ListIndex, 9)
End With
End If
Unload Me
RiskRecordEditForm.Show
End Sub
determine if the first column along the row of a listbox is empty.
您可以使用 Len()
和 Trim()
检查列表框行的第一列是否为空。
这是你正在尝试的吗?
Option Explicit
'~~> Add sample data
Private Sub CommandButton1_Click()
With RiskLogReviewListBox
.AddItem
.List(UBound(.List), 0) = "aa"
.List(UBound(.List), 1) = "bb"
.AddItem
.List(UBound(.List), 0) = "cc"
.List(UBound(.List), 1) = "" '<~~ Empty
End With
End Sub
Private Sub RiskLogReviewListBox_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
If RiskLogReviewListBox.ListIndex = -1 Then Exit Sub
If Len(Trim(RiskLogReviewListBox.List(RiskLogReviewListBox.ListIndex, 1))) = 0 Then _
MsgBox "First Column of selected row is empty"
End Sub
顺便说一句,您在 End If
之前有 End With
。可能是打字错误?
注意:我正在考虑将第二列作为第一列。如果您指的是第一列,那么请使用 0
而不是 1
。例如RiskLogReviewListBox.List(RiskLogReviewListBox.ListIndex, 0)
Option Explicit
'~~> Add sample data
Private Sub CommandButton1_Click()
With RiskLogReviewListBox
.AddItem
.List(UBound(.List), 0) = "aa"
.List(UBound(.List), 1) = "bb"
.AddItem
.List(UBound(.List), 0) = "" '<~~ Empty
.List(UBound(.List), 1) = "cc"
End With
End Sub
Private Sub RiskLogReviewListBox_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
If RiskLogReviewListBox.ListIndex = -1 Then Exit Sub
If Len(Trim(RiskLogReviewListBox.List(RiskLogReviewListBox.ListIndex, 0))) = 0 Then _
MsgBox "First Column of selected row is empty"
End Sub
我正在尝试在 VBA 中编写 IF 语句以确定列表框行的第一列是否为空。 如果该行为空,我希望显示一个消息框。如果该行不为空,则该行将保存到内存中。
到目前为止我的代码:
Private Sub RiskLogReviewListBox_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
With RiskLogReviewListBox
If IsNull(Me.RiskLogReviewListBox, 0, 0) Then
MsgBox "Item is not a Valid Entry"
Else
str1$ = .List(.ListIndex, 0)
str2$ = .List(.ListIndex, 1)
str3$ = .List(.ListIndex, 2)
str4$ = .List(.ListIndex, 3)
str5$ = .List(.ListIndex, 4)
str6$ = .List(.ListIndex, 5)
str7$ = .List(.ListIndex, 6)
str8$ = .List(.ListIndex, 7)
str9$ = .List(.ListIndex, 8)
str10$ = .List(.ListIndex, 9)
End With
End If
Unload Me
RiskRecordEditForm.Show
End Sub
determine if the first column along the row of a listbox is empty.
您可以使用 Len()
和 Trim()
检查列表框行的第一列是否为空。
这是你正在尝试的吗?
Option Explicit
'~~> Add sample data
Private Sub CommandButton1_Click()
With RiskLogReviewListBox
.AddItem
.List(UBound(.List), 0) = "aa"
.List(UBound(.List), 1) = "bb"
.AddItem
.List(UBound(.List), 0) = "cc"
.List(UBound(.List), 1) = "" '<~~ Empty
End With
End Sub
Private Sub RiskLogReviewListBox_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
If RiskLogReviewListBox.ListIndex = -1 Then Exit Sub
If Len(Trim(RiskLogReviewListBox.List(RiskLogReviewListBox.ListIndex, 1))) = 0 Then _
MsgBox "First Column of selected row is empty"
End Sub
顺便说一句,您在 End If
之前有 End With
。可能是打字错误?
注意:我正在考虑将第二列作为第一列。如果您指的是第一列,那么请使用 0
而不是 1
。例如RiskLogReviewListBox.List(RiskLogReviewListBox.ListIndex, 0)
Option Explicit
'~~> Add sample data
Private Sub CommandButton1_Click()
With RiskLogReviewListBox
.AddItem
.List(UBound(.List), 0) = "aa"
.List(UBound(.List), 1) = "bb"
.AddItem
.List(UBound(.List), 0) = "" '<~~ Empty
.List(UBound(.List), 1) = "cc"
End With
End Sub
Private Sub RiskLogReviewListBox_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
If RiskLogReviewListBox.ListIndex = -1 Then Exit Sub
If Len(Trim(RiskLogReviewListBox.List(RiskLogReviewListBox.ListIndex, 0))) = 0 Then _
MsgBox "First Column of selected row is empty"
End Sub