vba 无法设置 List 属性。无效的属性值

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/7872207/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-11 14:19:58  来源:igfitidea点击:

Could not set the List property. Invalid property value

excelvbalistbox

提问by Andrei Ion

I'm getting this error and I don't know the reason. I have the following piece of code:

我收到此错误,但不知道原因。我有以下一段代码:

Private Sub repereche_Change()
Dim ws As Worksheet
Set ws = Worksheets("BD_IR")
Dim Rand As Long, Rand2 As Long
Dim prestrangere As Long
Dim prestrangere2 As Long
Dim bila As Long
Dim ws2 As Worksheet
Set ws2 = Worksheets("BD_AR")
prestrangere = 0
prestrangere2 = 0
bila = 10
Rand = 3
Rand2 = 3

Do While ws.Cells(Rand, 3).Value <> "" And Rand < 65000
    If Me.repereche.Value = Mid(ws.Cells(Rand, 3), 4, 10) Then
        Do While ws2.Cells(Rand2, 3).Value <> "" And Rand2 < 65000
            If Me.repereche.Value = Mid(ws2.Cells(Rand2, 3), 4, 10) Then
                If ws.Cells(Rand, 7) <> "" Then
                prestrangere = (((ws2.Cells(Rand2, 7) - 400) * 10) - ((ws.Cells(Rand, 6) - 400) * 10) - (bila * 1.414 * 2)) - 10
                prestrangere2 = (((ws2.Cells(Rand2, 6) - 400) * 10) - ((ws.Cells(Rand, 7) - 400) * 10) - (bila * 1.414 * 2)) - 10
                Else
                prestrangere = (((ws2.Cells(Rand2, 6) - 400) * 10) - ((ws.Cells(Rand, 6) - 400) * 10) - (bila * 1.414 * 2)) - 10
                End If
                gksluri.AddItem ws.Cells(Rand, 4).Value 'comanda IR
                gksluri.List(gksluri.ListCount - 1, 1) = ws.Cells(Rand, 5) 'inel IR
                gksluri.List(gksluri.ListCount - 1, 2) = ws.Cells(Rand, 6) 'GKSL IR
                gksluri.List(gksluri.ListCount - 1, 3) = ws.Cells(Rand, 7) 'GKSL 2 IR
                gksluri.List(gksluri.ListCount - 1, 4) = ws2.Cells(Rand2, 4) 'comanda AR
                gksluri.List(gksluri.ListCount - 1, 5) = ws2.Cells(Rand2, 5) 'inel AR
                gksluri.List(gksluri.ListCount - 1, 6) = ws2.Cells(Rand2, 6) 'GKSL AR
                gksluri.List(gksluri.ListCount - 1, 7) = ws2.Cells(Rand2, 7) 'GKSL 2 AR
                gksluri.List(gksluri.ListCount - 1, 8) = bila
                gksluri.List(gksluri.ListCount - 1, 9) = prestrangere
                gksluri.List(gksluri.ListCount - 1, 10) = "test" 'HERE IS THE ERROR
            End If
        Rand2 = Rand2 + 1
        Loop
    End If
Rand2 = 3
Rand = Rand + 1
Loop
End Sub

gksluri is a Listbox. The Listbox has 11 columns set at the ColumnCount property. If I remove the line

gksluri 是一个列表框。列表框在 ColumnCount 属性中设置了 11 列。如果我删除该行

gksluri.List(gksluri.ListCount - 1, 10) = "test" 

it works ok. What am I doing wrong? Where could the problem be? I couldn't find anything. Thanks a lot!

它工作正常。我究竟做错了什么?问题可能出在哪里?我找不到任何东西。非常感谢!

回答by Fionnuala

For an unbound data source, there is a 10-column limit (0 to 9).

对于未绑定的数据源,有 10 列的限制(0 到 9)。

From: http://office.microsoft.com/en-us/excel-help/HV080556371.aspx

来自:http: //office.microsoft.com/en-us/excel-help/HV080556371.aspx