У меня есть простой код, который должен вызывать пользовательскую форму (CorrectiveActions), когда пользователь вводит значение больше 2,5 в определенных ячейках.
Private Sub Worksheet_Change(ByVal target As Range)
If target.Count > 1 Then Exit Sub
If Not Application.Intersect(target, Me.Range("F11:F1292,K11:K1292,P11:P1292")) Is Nothing Then
If target >= 2.5 And IsNumeric(target) And Intersect(target, Me.Range("K11:K1292")) Is Nothing Or target.Offset(0, 1) >= 2.5 And Intersect(target, Me.Range("F11:F1292,P11:P1292")) Is Nothing Then CorrectiveActions.Show
End If
End Sub
Пользовательская форма содержит список, и я хочу заполнить ячейку ниже той, где значение больше 2,5. Я использовал следующий код:
Private Sub ListBox1_Click()
Dim cellRow As Integer
Dim cellCol As Integer
cellRow = ActiveCell.Row
cellCol = ActiveCell.Column
Cells(cellRow, cellCol).Offset(1, 0).Value = ListBox1
End Sub
Эта пользовательская форма прекрасно работает, когда я запускаю ее вручную. Тем не менее, когда я ввожу значение больше 2,5 в указанной ячейке, пользовательская форма отображается, но не будет работать. То есть клетка не будет заполнена.