-3
我想在Excel中建立一個VB腳本宏來發送電子郵件。如果用戶在列「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
什麼是您的具體問題?哪一部分不按照你想要的方式行事? – Banjoe
這不是VBScript,它是VBA。他們不是一回事。 –