Excel 组合框重置为“第一个”;“空白”;如果左侧单元格为空,则输入错误
我有6个相关的组合框,当它旁边的单元格变为空白时,我希望将其重置为空白。只要将主列表设置为一个值,代码就可以正常工作。但是,如果将主组合框设置为其默认值,这使从属框没有可选择的值,则代码会给出: 运行时错误308:无法设置ListIndex属性。无效的属性值 另外,当第一次打开工作表时,我无法在正在检查的单元格中键入任何内容,以查看Excel 组合框重置为“第一个”;“空白”;如果左侧单元格为空,则输入错误,excel,combobox,vba,Excel,Combobox,Vba,我有6个相关的组合框,当它旁边的单元格变为空白时,我希望将其重置为空白。只要将主列表设置为一个值,代码就可以正常工作。但是,如果将主组合框设置为其默认值,这使从属框没有可选择的值,则代码会给出: 运行时错误308:无法设置ListIndex属性。无效的属性值 另外,当第一次打开工作表时,我无法在正在检查的单元格中键入任何内容,以查看“值 我尝试用另一个If语句包装代码,但我一定是做错了什么,因为代码似乎无论如何都在运行 有人能看一下并告诉我你是否能看到问题吗 提前谢谢 Private Sub W
“
值
我尝试用另一个If语句包装代码,但我一定是做错了什么,因为代码似乎无论如何都在运行
有人能看一下并告诉我你是否能看到问题吗
提前谢谢
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If cboShiftsList.Object.ListIndex > -1 Then
If Range("I15") = "" Then
cboDependentShiftList.Object.ListIndex = 0
End If
If Range("I16") = "" Then
cboDependentShiftList1.Object.ListIndex = 0
End If
If Range("I17") = "" Then
cboDependentShiftList2.Object.ListIndex = 0
End If
If Range("I18") = "" Then
cboDependentShiftList3.Object.ListIndex = 0
End If
If Range("I19") = "" Then
cboDependentShiftList4.Object.ListIndex = 0
End If
If Range("I20") = "" Then
cboDependentShiftList5.Object.ListIndex = 0
End If
End If
End Sub
我在工作簿\u Open
事件中有此代码:
'Populate combo box with Shifts categories.
Dim rng As Range
Dim ws As Worksheet
Set ws = Worksheets("Staff Page")
Worksheets("Staff Page").cboShiftsList.Clear
For Each rng In ws.Range("ShiftSelectList")
Worksheets("Staff Page").cboShiftsList.AddItem rng.Value
Worksheets("Staff Page").cboShiftsList.Object.ListIndex = 0
Next rng
如果有人想看的话,这里有一个文件的链接。我觉得我对这个问题分享得不够,也许看到这个文件会有所帮助。再次感谢
已解决强>
我能够使用@A.S.H的建议,并更改了我在主组合框中检查的值,现在它可以完美地工作
谢谢@A.S.H
这是最后的代码:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If cboShiftsList.Object.ListIndex > 0 Then
If Range("I15") = "" Then
cboDependentShiftList.Object.ListIndex = -1
End If
If Range("I16") = "" Then
cboDependentShiftList1.Object.ListIndex = -1
End If
If Range("I17") = "" Then
cboDependentShiftList2.Object.ListIndex = -1
End If
If Range("I18") = "" Then
cboDependentShiftList3.Object.ListIndex = -1
End If
If Range("I19") = "" Then
cboDependentShiftList4.Object.ListIndex = -1
End If
If Range("I20") = "" Then
cboDependentShiftList5.Object.ListIndex = -1
End If
End If
End Sub
你不是想要什么吗?试过了,我还是发现了错误。我还应该提到,我在子工作簿打开事件中放置了一个代码。我更新了原始帖子以反映它。我看不到你代码中的问题。这可能是由于数据验证或其他原因。感谢您的检查!我将尝试将工作簿打开事件移动到页面打开事件中,并将其设置为仅在第一次打开页面时运行。如果你有任何想法,请告诉我!在我的第一个评论中,我建议
cboDependentShiftList.ListIndex=-1
,但显然我的意思是对工作表中的所有行进行相同的修改。你试过了吗?