макрос, чтобы проверить, содержит ли определенный диапазон ячеек значение - PullRequest
0 голосов
/ 21 августа 2011

Я пытаюсь создать макрос VB скрипт в Excel для отправки электронной почты. Если пользователь вводит значение в столбце «F» как «Нет», сценарий проверяет, содержит ли ячейка L2 значение «0». Если он содержит «1» или любое другое значение, он не будет запрашивать отправку электронной почты. Сценарий работает отлично, за исключением того, что я не смог определить диапазон L2: L200.

Вот что я пытался сделать: то есть, если пользователь вводит «НЕТ» в какую-либо строку столбца «F» и если эта же строка в столбце «L» содержит значение как «0», он должен запросить отправку электронной почты. Иначе не должно быть. Пожалуйста, кто-нибудь, помогите мне, поскольку у меня есть только ограниченные знания в макросах excel vb. I have left a space between the code where the range is defined.

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
                   (ByVal hwnd As Long, ByVal lpszOp As String, _
                    ByVal lpszFile As String, ByVal lpszParams As String, _
                    ByVal LpszDir As String, ByVal FsShowCmd As Long) _
                    As Long
-------------------------------------------------------------------------------------------------------------------------
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim lngResponse As Long
Dim Mail_Object, Email_Subject, Email_Send_To, Email_Cc, Email_Bcc, Email_Body, Email_Body1, Email_Body2, Email_Body3 As String
  If Left(Target.Address, 2) = "$F" Then
  If Target.Value = "No" Then 


If Range("L2").Value = "0" Then


  lngResponse = MsgBox("Draft and send an email now ?", vbYesNo)
  If lngResponse = vbYes Then
Email_Subject = "Approval needed to process change order for PO " & Range("$C" & Right(Target.Address, 2)).Value & ""
    Email_Send_To = ""
    Email_Cc = ""
    Email_Bcc = ""
    Email_Body = "Hi ,"
    Email_Body1 = "   Please approve to process change order for PO# " & Range("$A" & Right(Target.Address, 2)).Value & ": "
    Email_Body2 = "   Actual price on the PO: $" & Range("$B" & Right(Target.Address, 2)).Value & ""
    Email_Body3 = " , Vendor quoted price: $" & Range("$C" & Right(Target.Address, 2)).Value & "" & "     " & "     " & "     " & "     " & "     " & "     " & "     " & "     "
    Mail_Object = "mailto:" & Email_Send_To & "?subject=" & Email_Subject & "&body=" & Email_Body & Email_Body1 & Email_Body2 & Email_Body3 & "&cc=" & Email_Cc '& "&bcc=" & Email_Bcc
    'On Error GoTo debugs
    ShellExecute 0&, vbNullString, Mail_Object, vbNullString, vbNullString, vbNormalFocus 
  End If
  End If
  End If
  End If
End Sub

1 Ответ

0 голосов
/ 22 августа 2011

Должна ли фиксированная ячейка "L2" быть 0 для какой-либо строки, чтобы запрашивать электронную почту?Или вы имеете в виду «только запросить электронную почту, если столбец L в измененной строке равен 0»?Если это так, вот код:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    'If column is F and entry is "no", case insensitive
    If Target.Column = 6 And UCase(Target.Value) = "NO" Then
        'If the L column on the changed cell's row equals 0
        If Sh.Cells(Target.Row, 12) = 0 Then
            'Prompt for email code here
        End If
    End If
End Sub

Редактировать: пропущен конец, если

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...