У меня есть список в пользовательской форме с исходным диапазоном, который я пытаюсь перезаписать, предоставляя значения из пользовательской формы, но как только я перезаписываю конкретную ячейку, запускается событие ListBox1_Click()
, которое нежелательно, поскольку оно заполняет данныев пользовательской форме.
Private Sub ListBox1_Click()
Application.EnableEvents = False
Dim i As Long, fRow As Long
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) Then
If i > 0 Then
HSht.Range("cRow").Value = i + 1
fRow = HSht.Range("cRow").Value
Call getData(fRow)
HSht.Range("LRow").Value = getlastRow()
Me.ItemLbl.Caption = "Item number :" & HSht.Range("cRow").Value - 1 & " of " & HSht.Range("LRow").Value - 1
End If
Exit For
End If
Next i
Application.EnableEvents = True
End Sub
Вот код кнопки обновления:
Private Sub cmdUpdate_Click()
Application.EnableEvents = False
'Update
Dim fRow As Long, i As Long
fRow = HSht.Range("cRow").Value
Call updateData(fRow)
HSht.Range("LRow").Value = getlastRow()
Me.ItemLbl.Caption = "Item number :" & HSht.Range("cRow").Value - 1 & " of " & HSht.Range("LRow").Value - 1
'MsgBox "Data updated successfully"
Application.EnableEvents = True
End Sub
Например, у вас есть 10 полей, и у вас есть десять текстовых полей в пользовательской форме для просмотра / изменения данных, ноу вас также есть многоколонный список для просмотра и прокрутки данных в табличном формате, когда при прокрутке вверх или вниз я получаю данные определенных строк в текстовых полях в пользовательской форме, у меня также есть кнопка с надписью «перезаписать» в случае, если я хочу изменитьданные на листе через пользовательскую форму.Но как только он изменяет одну ячейку на рабочем листе, запускается событие «Listbox1_click», и он перезаписывает данные в пользовательской форме.