Я пытаюсь создать макрос 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