У меня есть приложение, созданное, где появляется диалоговое окно, запрашивает около двух значений в двух столбцах на листе 2. Если они оба совпадают, появляется окно с сообщением, а затем другие экземпляры с другими сообщениями. Когда я набираю код работы, он совпадает с этим кодом работы, но в этом коде могут быть выровнены несколько центров затрат. Мой код останавливается в первой строке, где происходит это совпадение, но не перебирает все строки, чтобы посмотреть, сможет ли он найти центр затрат. Он возвращает сообщение «найден, но не подходит для этого центра затрат», но не завершает цикл, чтобы действительно знать или нет.
Что мне нужно изменить здесь, чтобы убедиться, что оно не вызывает преждевременное срабатывание этого сообщения?
Он говорит, что rFound
находит код задания, но этот код задания имеет 4 строки для каждого подходящего МВЗ, охватывающего строки 211-14. Он останавливается на строке 211, затем не пытается просмотреть остальные 3 строки, в которых совпадает rFound.
Код:
Option Explicit
Sub tgr()
Dim rFound As Range
Dim lJobCode As String
Dim lFLSA As String
Dim lCC As String
Dim sFirst As String
Dim sResults As String
Dim sh As Worksheet
Dim matched As Boolean
Dim Y As Integer, Z As Integer
lJobCode = Application.InputBox("Please provide a job code", "Job Code", Type:=2)
lCC = Application.InputBox("Please enter in a cost-center", "CC", Type:=2)
If lJobCode = "False" Or lCC = "False" Then Exit Sub 'Pressed cancel
Set sh = Sheets("Sheet1")
With ThisWorkbook.Worksheets("Sheet2").Columns("A")
Set rFound = .Find(lJobCode, .Cells(.Cells.Count), xlValues, xlWhole)
If Not rFound Is Nothing Then
If ThisWorkbook.Worksheets("Sheet2").Cells(rFound.Row, 3).Value = lCC Then
matched = True
If rFound.Offset(, 4).Value = "Exempt" And Y = 0 Then
MsgBox "Exempt roles may be eligible for schedule pay allowance."
Y = 1
Exit Sub 'if criteria is met, display above msgbox and then exit sub after user clicks ok or cancel
End If
If rFound.Offset(, 5).Value = "Eligible - Employee Level" And Z = 0 Then
MsgBox "This job is only eligible at the employee level."
Z = 1
Exit Sub
End If
MsgBox "Job Code (" & lJobCode & ") is eligible for this cost-center."
End If
If Not matched Then MsgBox "Job Code (" & lJobCode & ") found, but not eligible for this cost-center."
Else
MsgBox "Job Code (" & lJobCode & ") not eligible."
End If
End With
End Sub