Я не могу на всю жизнь понять, куда поместить этот оператор Else или Else If в этом блоке операторов IF.Краткое изложение: если я найду значение, которое я ввожу в поле ввода в обозначенных строках, заполните выбранные данные из этой строки на указанном мной листе.Другой оператор if после этого опирается на другое значение (для дальнейшей фильтрации результатов).
Это прекрасно работает, но я просто хочу заполнить поле сообщения, если код задания, который я ввел, существует, но не основывается на значении второго оператора IF.Сейчас он просто не заполняет данные, но это может создать иллюзию, что что-то сломано, а не соответствует всем критериям.
Я хочу добавить что-то вроде Else if .... msg box "Job code exists, but not under this EC member
между вторым оператором if с отступом (после цикла Do / while) здесь:
If Not rFound Is Nothing Then
sFirst = rFound.Address
Do
If ThisWorkbook.Worksheets("Sheet2").Cells(rFound.Row, 5).Value = lLob Then
sh.Cells(rw, 4) = rFound.Offset(, 0).Value
sh.Cells(rw, 5) = rFound.Offset(, 1).Value
sh.Cells(rw, 6) = rFound.Offset(, 3).Value
sh.Cells(rw, 7) = rFound.Offset(, 5).Value
sh.Cells(rw, 8) = rFound.Offset(, 6).Value
sh.Cells(rw, 9) = rFound.Offset(, 7).Value
rw = rw + 1
End If
Set rFound = .FindNext(rFound)
Loop While rFound.Address <> sFirst
Else
MsgBox "Job Code [" & lJobCode & "] not eligible.", , "Error"
End If
весь код:
Sub tgr()
Dim rFound As Range
Dim lJobCode As String
Dim lLob As String
Dim sFirst As String
Dim sResults As String
Dim sh As Worksheet
Dim rw As Long
lJobCode = Application.InputBox("Please provide a job code", "Job Code", Type:=2)
lLob = Application.InputBox("Please select EC Member", "EC Member", Type:=2)
If lJobCode = "False" Or lLob = "False" Then Exit Sub 'Pressed cancel
Set sh = Sheets("Sheet1")
rw = 8
With ThisWorkbook.Worksheets("Sheet2").Columns("A")
Set rFound = .Find(lJobCode, .Cells(.Cells.Count), xlValues, xlWhole)
If Not rFound Is Nothing Then
sFirst = rFound.Address
Do
If ThisWorkbook.Worksheets("Sheet2").Cells(rFound.Row, 5).Value = lLob Then
sh.Cells(rw, 4) = rFound.Offset(, 0).Value
sh.Cells(rw, 5) = rFound.Offset(, 1).Value
sh.Cells(rw, 6) = rFound.Offset(, 3).Value
sh.Cells(rw, 7) = rFound.Offset(, 5).Value
sh.Cells(rw, 8) = rFound.Offset(, 6).Value
sh.Cells(rw, 9) = rFound.Offset(, 7).Value
rw = rw + 1
End If
Set rFound = .FindNext(rFound)
Loop While rFound.Address <> sFirst
Else
MsgBox "Job Code [" & lJobCode & "] not eligible.", , "Error"
End If
End With
End Sub