Как я могу реализовать эту логическую переменную для этого сценария? - PullRequest
0 голосов
/ 04 апреля 2019

У меня есть этот скрипт, который заполняет один лист необработанными данными другого листа.У него есть определенные вложенные циклы IF & Do While, и у меня есть последнее, что меня попросили добавить к нему.

Когда пользователь вводит код задания, мне интересно, можно ли добавить в поле ввода ТОЛЬКО если rFound.Offset(, 2).Value = строка Exempt?Если значение в этом столбце говорит что-то отличное от Exempt, поле msg не сработает.Я знаю, что это, вероятно, булева переменная, но я не могу понять, где ее разместить?

Я хочу, чтобы в окне сообщения появилось сообщение: «Является ли этот сотрудник освобожденным, они должны .....»

Остальная часть сценария: (Я могу комментировать строки, если возникает путаница) Sub tgr ()

Dim rFound As Range
Dim lJobCode As String
Dim lFLSA As String
Dim lEC As String
Dim sFirst As String
Dim sResults As String
Dim sh As Worksheet
Dim rw As Long
Dim matched As Boolean


lJobCode = Application.InputBox("Please provide a job code", "Job Code", Type:=2)
lEC = Application.InputBox("Please select EC Member", "EC Member", Type:=2)

If lJobCode = "False" Or lEC = "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, 9).Value = lEC Then
                matched = True

                If rFound.Offset(, 2).Value = "Exempt" Then
                    MsgBox "Is this employee exempt, and do they work consistent hours after 8pm?"
                Else

                    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
            End If
            Set rFound = .FindNext(rFound)
        Loop While rFound.Address <> sFirst

        If Not matched Then MsgBox "Job Code [" & lJobCode & "] found, but not eligible for EC Member"

    Else
        MsgBox "Job Code [" & lJobCode & "] not eligible."
    End If

End With

End Sub

1 Ответ

0 голосов
/ 04 апреля 2019

Публикация предложения в качестве ответа, поэтому его можно пометить как ответ.

if rFound.Offset(, 2).Value = "Exempt" then userform1.load

Или как msgbox ()

if rFound.Offset(, 2).Value = "Exempt" then msgbox("content")

Редактировать1:

Если вы хотите, чтобы данные извлекались при совпадении = true, но вы хотите, чтобы всплывающее окно msgbox всплыло, попробуйте следующее:

If ThisWorkbook.Worksheets("Sheet2").Cells(rFound.Row, 9).Value = lEC Then
    matched = True
    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
    If rFound.Offset(, 2).Value = "Exempt" AND z = 0 Then 
        MsgBox "Is this employee exempt, and do they work consistent hours after 8pm?"
        z = 1
    End if
    rw = rw + 1
End If
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...