Значения Listindex отличаются от значений в ячейке листа? - PullRequest
0 голосов
/ 09 апреля 2020
'fills the text box with information from Sheet1 according to textbox1 input
Private Sub Autocomplete_Click()
Dim sh As Worksheet
Set sh = ThisWorkbook.Sheets("Sheet1")

Dim Last_Row As Long
Last_Row = Application.WorksheetFunction.CountA(sh.Range("A:A"))
Dim w As Long
For w = 2 To Last_Row

If sh.Cells(w, 2).Value = Me.TextBox1.Value Then
    Me.TextBox4.Value = sh.Cells(w, 1).Value
    Me.TextBox1.Value = sh.Cells(w, 2).Value
Me.TextBox8.Value = w
Exit Sub
End If
Next w
End Sub
'sets textbox4 and 1 to values clicked on
'this listbox uses the same data from Sheet1
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    If Me.ListBox1.List(Me.ListBox1.ListIndex, 0) <> "" Then
    Me.TextBox1.Value = Me.ListBox1.List(Me.ListBox1.ListIndex, 1)
    Me.TextBox4.Value = Me.ListBox1.List(Me.ListBox1.ListIndex, 0)
    End If
End Sub
'updates record accoring to textbox1 input
Private Sub Update_Click()
Dim sh As Worksheet
Set sh = ThisWorkbook.Sheets("Sheet1")

Dim Selected_Row As Long
'finds the record according to the value in Textbox4
Selected_Row = Application.WorksheetFunction.Match(Me.ListBox1.List(Me.ListBox1.ListIndex, 0), sh.Range("A:A"), 0)
sh.Range("B" & Selected_Row).Value = Me.TextBox1.Value
End Sub

Теперь, если я использую функции ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean) и Update_Click(), он прекрасно работает, но если я использую Autocomplete_Click() и Update_Click(), весь ад проваливается. Поскольку функция сопоставления Application.WorksheetFunction.Match(Me.ListBox1.List(Me.ListBox1.ListIndex, 0), sh.Range("A:A"), 0) не может принять sh.Cells(w, 1).Value. Может кто-нибудь объяснить, почему это не сработает? Textbox4 является одинаковым значением в обоих случаях Listbox и Cells.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...