Мне нужно научиться пропускать?или выйдите из процедуры if и перейдите к следующей, если первая строка не соответствует критериям.ЧИТАЙТЕ: ActiveCell.Offset (0, -1) = "F".
Ps.Этот саб помещен в событие Change.
Во-первых, я действительно новичок в этом, и я много смотрел и читал, чтобы стать лучше.На 99% всех моих вопросов до сих пор отвечали здесь в предыдущих темах.Это было мое первое исключение.Приветствуются советы и рекомендации по чтению материалов
Я пробовал: Если не ActiveCell.Offset (0, -1) = "F", то Exit Sub, которая в этом случае просто убила всю процедуру.Я также попытался разделить его на 5 различных подпрограмм и попытался вызвать их из подпрограммы события change, но там я тоже получаю ошибки.
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("D:D")) Is Nothing Then Exit Sub
If Target.Count > 1 Then Exit Sub
Target.Offset(0, -1) = Now
'Written by Bjoern Monroe (04.27.2019) - [Rev 1]
'If the above cell is = L then the selected cell can't contain "VS" or "VN"
If ActiveCell.Offset(0, -1) = "L" Then
ElseIf ActiveCell.Text = "VS" Or ActiveCell.Text = "VN" Then
MsgBox ("Trigger Warning")
Else
MsgBox ("Wont Trigger Warning")
End If
'If the above cell is = F then the selected cell can't contain "VS" or "VN"
If ActiveCell.Offset(0, -1) = "F" Then
ElseIf ActiveCell.Text = "VS" Or ActiveCell.Text = "VN" Then
MsgBox ("Trigger Warning")
Else
MsgBox ("Wont Trigger Warning")
End If
'If the above cell is = S then the selected cell can't contain "L", "VS", "F", or "S"
If ActiveCell.Offset(0, -1) = "S" Then
ElseIf ActiveCell.Text = "L" Or ActiveCell.Text = "VS" Or ActiveCell.Text = "F" Or ActiveCell.Text = "S" Then
MsgBox ("Trigger Warning")
Else
MsgBox ("Wont Trigger Warning")
End If
'If the above cell is = VN then the selected cell can't contain "L", "VN", "F", or "S"
If ActiveCell.Offset(0, -1) = "VN" Then
ElseIf ActiveCell.Text = "L" Or ActiveCell.Text = "VN" Or ActiveCell.Text = "F" Or ActiveCell.Text = "S" Then
MsgBox ("Trigger Warning")
Else
MsgBox ("Wont Trigger Warning")
End If
'If the above cell is = VS then the selected cell can't contain "VS", "L", Or "S"
If ActiveCell.Offset(0, -1) = "VS" Then
ElseIf ActiveCell.Text = "VS" Or ActiveCell.Text = "L" Or ActiveCell.Text = "S" Then
MsgBox ("Trigger Warning")
Else
MsgBox ("Wont Trigger Warning")
End If
End Sub
У меня есть столбец, который всегда заполняется пользователем с F, L, S, VN и VS.Но последовательность значений, которые заполняются, почти всегда одинакова.Если ячейка столбца выше F, активная ячейка может быть только F, L или S. Никогда, например, VN или VS.Я хочу, чтобы пользователь получил всплывающее сообщение о том, что он собирается написать неправильную последовательность.
Результаты пока что.Я получаю 5 всплывающих окон вместо одного, который я ожидал.Это имеет смысл, потому что подпункт думает, что я хочу, чтобы он проверил все 5, даже если он соответствует критериям или нет.