Я чувствовал, что должен был попросить помощи у экспертов, потому что я терял довольно много времени, пытаясь понять это без особого успеха.
Я нахожусь в процессе создания простой базы данных, где пользователям придется вводить значения на основе раскрывающихся меню.Исключением является столбец AB , в котором содержится пользовательская форма, в которой оператору необходимо будет ввести два числовых значения, например, «Незначительные выводы» и «Основные выводы», оба в диапазоне от 1 до 25.
В настоящее время пользовательская форма автоматически запускается, как только пользователь выбирает определенный диапазон ячеек AB14: AB200
Затем пользователь нажимает кнопку с названием caclculate severity который должен затем перенести два значения в два столбца AI & AJ
Проблема, с которой я столкнулся, заключается в следующем: пользователь может вызватьuserform из ячейки AB56 , введите два значения, нажмите рассчитать серьезность , но вывод всегда будет транспонирован в первые строки диапазона (AI14 и AJ14) вместо (AI56 &AJ56).
Я приложил образец моего кода вместе со скриншотом базы данных.
Private Sub Calculateseveritybutton_Click()
Worksheets("International CCU Tracker").Activate
Set xrg = Worksheets("International CCU Tracker").Range("AB14:AB200")
For Each xcell In xrg
' replace the sheet name and range A2 or B2 with yours
If Textbox1.Value = "0-25" And Textbox2.Value = "0-25" Then
MsgBox ("Please enter a Minor and Major finding value")
ElseIf Textbox1.Value <> "0-25" And Textbox2.Value = "0-25" Then
Sheets("International ccu tracker").Range("AI" & xcell.Row).Value = Textbox1.Value
MsgBox ("Please enter a Major finding value")
ElseIf Textbox1.Value = "0-25" And Textbox2.Value <> "0-25" Then
Sheets("International ccu tracker").Range("AJ" & xcell.Row).Value = Textbox2.Value
MsgBox ("Please enter a Minor finding value")
ElseIf Textbox1.Value <> "0-25" And Textbox2.Value <> "0-25" Then
Worksheets("International ccu tracker").Range("AI" & xcell.Row).Value = Textbox1.Value
Worksheets("International ccu tracker").Range("AJ" & xcell.Row).Value = Textbox2.Value
MsgBox ("Rating calculated")
Textbox3.Font.Size = 14
Textbox3.TextAlign = 2
End If
Next xcell
Exit Sub
End Sub
Это код триггера пользовательской формы
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim question As Integer
If Not Intersect(Target, Me.Range("Userformrange")) Is Nothing Then
question = MsgBox("Would you like to add or edit a rating?", vbYesNo)
If question = vbYes Then
UserForm1.Show
Else
Exit Sub
End If
End If
End Sub