得到"运行时错误' 380':无法设置Value属性。无效的属性值。"将值分配给组合框时的错误'值'属性

时间:2014-07-06 06:37:28

标签: excel excel-vba combobox vba

以下是设置:作为我正在开发的多重击球笼调度程序的一部分,数据字典(dReservData)加载了所选日期的所有预约的数据。 dReservData中有16个字段。当用户选择特定预留时,表单上的控件将加载来自该预留的数据字典中的适当字段。 (为了简洁起见,我只包括我认为是代码的相关部分。)“运行时错误'380':无法设置Value属性。无效的属性值。”当我尝试将值1(您可以从Debug语句的输出中看到)分配给组合框的值属性(combo_ReservationsInstructor)时发生错误。组合框有2列,预先填充了N x 2阵列的教师ID和名称。我试图使用教师ID(在这种情况下,ID为'1')分配到组合框的value属性,作为以编程方式选择组合中的项目的方法。

With form_APScheduler
    .tb_ReservationsBeginTime.Value = dReservData(BegTime)(iStepRes)
    .tb_ReservationsEndTime.Value = dReservData(EndTime)(iStepRes)
    .tb_ReservationsNote.Value = dReservData(ResNote)(iStepRes)

    If dReservData(RentType)(iStepRes) = "Lesson" Or dReservData(RentType)(iStepRes) = "CageRental" Then

        If dReservData(RentType)(iStepRes) = "Lesson" Then
            .combo_ReservationsType.Value = "Lesson"
            Debug.Print "dReservData(ResInstructor)(iStepRes) = " & dReservData(ResInstructor)(iStepRes)    'Debug output: dReservData(ResInstructor)(iStepRes) = 1
            .combo_ReservationsInstructor.Value = dReservData(ResInstructor)(iStepRes)   '***ERROR OCCURS HERE

        ElseIf dReservData(RentType)(iStepRes) = "CageRental" Then
            .combo_ReservationsType.Value = "CageRental"

        End If

1 个答案:

答案 0 :(得分:1)

使用.Value属性分配组合框的选定项目并非在所有情况下都能正常工作。 请尝试使用.ListIndex属性。

在您的示例中,您收到错误的行将如下所示:

.combo_ReservationsInstructor.ListIndex = dReservData(ResInstructor)(iStepRes) -1

注意:组合框的ListIndex开始计数为0 ...这就是行尾-1的原因。

此解决方案假设教师ID以1开头并且继续无间隙