Private Sub sendemail(esubj)
Sheets("Actual").Select
myfridate = Cells(1, 3).Value
myfridate = DateAdd("d", -2, myfdate)
myfridate = Format(myfridate, "mm-dd-yy")
Sheets("Actual").Select
mysatdate = Cells(1, 3).Value
mysatdate = DateAdd("d", -1, myfdate)
mysatdate = Format(mysatdate, "mm-dd-yy")
If Weekday(Now()) = vbMonday Then
Set omail = CreateItem(olMailItem)
ROW_BEGIN = 1
ROW_END = 72
Sheet1.Activate
Range("I7").Select
fileSat = "\\FINANCE\Daily Report\"
fileSat = fileSat & Left(Range("I7"), 3) & Right(Year(Date), 2)
fileSat = fileSat & "\Key Report - " & mysatdate & ".xls"
Sheet1.Activate
Range("I7").Select
fileSun = "\\FINANCE\Daily Report\"
fileSun = fileSun & Left(Range("I7"), 3) & Right(Year(Date), 2)
fileSun = fileSun & "\Key Report - " & mysundate & ".xls"
Sheet1.Activate
Range("I7").Select
fileFri = "\\FINANCE\Daily Report\"
fileFri = fileFri & Left(Range("I7"), 3) & Right(Year(Date), 2)
fileFri = fileFri & "\Key Report - " & myfridate & ".xls"
With omail
.Subject = "M Daily Report"
.BodyFormat = olFormatHTML
.HTMLBody = "<a href ='" & fileFri & "'>Key Report - " & myfridate & "</a><br><a href ='" & fileSat & "'>Key Indicator Daily Report - " & mysatdate & "</a><br><a href ='" & fileSun & "'>Key Indicator Daily Report - " & mysundate & "</a>"
.To = "Me"
.Display
End With
Set omail1 = CreateItem(olMailItem)
With omail1
.Subject = "R Daily Report"
.BodyFormat = olFormatHTML
.To = "You"
.Attachments.Add fileFri
.Attachments.Add fileSat
.Attachments.Add fileSun
.Display
End With
Set omail2 = CreateItem(olMailItem)
With omail2
.Subject = "Mc Daily Report"
.BodyFormat = olFormatHTML
.To = "them"
.Attachments.Add fileFri
.Attachments.Add fileSat
.Attachments.Add fileSun
.Display
End With
Else
ROW_BEGIN = 1
ROW_END = 72
Sheet1.Activate
Range("I7").Select
fileSun = "\\FINANCE\Key Indicator\"
fileSun = fileSun & Left(Range("I7"), 3) & Right(Year(Date), 2)
fileSun = fileSun & "\Key Report - " & mysundate & ".xls"
Set omail = CreateItem(olMailItem)
With omail
.Subject = "M Daily Report"
.BodyFormat = olFormatHTML
.HTMLBody = "<a href ='" & fileSun & "'>Key Report - " & mysundate & "</a>"
.To = "Me"
.Display
End With
Set omail1 = CreateItem(olMailItem)
With omail1
.Subject = "R Daily Report"
.BodyFormat = olFormatHTML
.To = "You"
.Attachments.Add fileSun
.Display
End With
Set omail2 = CreateItem(olMailItem)
With omail2
.Subject = "Mc Daily Report"
.BodyFormat = olFormatHTML
.To = "them"
.Attachments.Add fileSun
.Display
End With
End If
'ActiveWorkbook.Close
Set omail = Nothing
End Sub
У меня есть код в vba, где, если будний день в понедельник, excel будет генерировать 3 сообщения электронной почты с 3 прикреплениями/ссылками. Но если это не в понедельник, excel будет генерировать 3 сообщения электронной почты только с одним вложением/ссылкой. Моя проблема заключается в том, что в моей таблице Excel есть вкладка Actual и она заполняется датой. Если эта дата в моей электронной таблице Excel изменяется в понедельник, в любой другой день недели, мой код vba по-прежнему будет обрабатывать программу, как будто это понедельник. Мне нужен оператор IF, который позволит создавать 3 письма с 3-мя связями/ссылками, указанными на вкладке «Фактическое» в моей электронной таблице. Надеюсь, это не смущает.IF Statement in VBA
Спасибо, Бен. Еще один вопрос. Если я не хочу, чтобы он генерировал какие-либо письма в день пятницы или субботы, как я могу изменить/добавить в оператор IF? – Edmond
@Edmond. Вам нужно изменить раздел 'Else' вашего кода на что-то вроде:' ElseIf Not Weekday (Work ...) = vbSaturday, а не Weekday (Work ...) = vbFriday Then'. Таким образом, раздел 'Else' кода выполняется, только если день не в субботу или пятницу. –