VBA Run time Error '70': Could not Set the list property. Permission Denied

后端 未结 1 970
滥情空心
滥情空心 2021-01-26 12:10

I am trying to update the data by clicking the Listbox,but getting error, please see my code below.

Using below code to display the list box value to text

相关标签:
1条回答
  • 2021-01-26 12:41

    Unlike ComboBoxes, you can't edit values in a ListBox on the fly like this. You have to delete the entry and insert one back in, with your new values. I'm not sure this is the most elegant way to do it, but the following works:

    Private Sub btnUpdate_Click()
        Dim values(3)
        Dim u As Long
        u = ListBox1.ListIndex
        If u <> -1 Then
                values(0) = TextBox1.Value
                values(1) = TextBox2.Value
                values(2) = TextBox3.Value
                values(3) = TextBox4.Value
    
             With ListBox1
             .RemoveItem u
             .AddItem values(0), u
                .List(u, 1) = values(1)
                .List(u, 2) = values(2)
                .List(u, 3) = values(3)
            End With
        End If
    End Sub
    
    Private Sub ListBox1_Click()
        Dim i As Long
        With Me
            i = .ListBox1.ListIndex
            .ListBox1.Selected(i) = True
            .TextBox1.Value = .ListBox1.Column(0, i)
            .TextBox2.Value = .ListBox1.Column(1, i)
            .TextBox3.Value = .ListBox1.Column(2, i)
            .TextBox4.Value = .ListBox1.Column(3, i)
        End With
    End Sub
    

    As I say, not elegant: I had to store the values of TextBox1 etc. in the array as when the RemoveItem runs, the Index changes which causes the ListBox1_Click to run - resetting all the Textboxes.

    0 讨论(0)
提交回复
热议问题