Всем привет! Есть файл с работающим макросом по рассылки сообщений по условию, но проблема с тем что он формирует сообщения с первого листа, нужно со всей книги. Не могу разобраться вот с этой частью макроса:
Код
Sub mail_30()
iLastrow = ThisWorkbook.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To iLastrow
If Sheets(1).Range("k" & i).Value = "Оправить" Then
Set OutApp = CreateObject("Outlook.Application")
OutApp.Session.Logon
On Error GoTo cleanup
Set OutMail = OutApp.CreateItem(0)
On Error Resume Next
Весь макрос целиком;
Sub mail_30()
iLastrow = ThisWorkbook.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To iLastrow
If Sheets(1).Range("k" & i).Value = "Отправить" Then
Set OutApp = CreateObject("Outlook.Application")
OutApp.Session.Logon
On Error GoTo cleanup
Set OutMail = OutApp.CreateItem(0)
On Error Resume Next
With OutMail
.To = Range("j" & i).Value
.Subject = "Новый документ."
.HTMLBody = "<p style='font-family:Tahoma;font-size:14'>" & "Здравствуйте. " & Range("d" & i).Value & vbCrLf & "." & _
"<p style='font-family:Tahoma;font-size:14'>" & "Вы получили это сообщение, так как Вам отписан документ " & Range("a" & i).Value & "." & _
"<p style='font-family:Tahoma;font-size:14'>" & "Документ в папке с документами U:\Документооборот\" & Range("l" & i).Value & vbCrLf & "." & _
"<p style='font-family:Tahoma;font-size:14'>" & "Это сообщение отправлено системой автоматически, пожалуйста, не отвечайте на него." & vbCrLf & _
"<p style='font-family:Tahoma;font-size:14'>" & "Система автоматического уведомления."
.Display
End With
On Error GoTo 0
Set OutMail = Nothing
cleanup:
Set OutApp = Nothing
End If
Next
End Sub
Всем добрый вечер. Кто нибудь помогите с решить вопрос с макросом. Очень нужно. Макрос по рассылки сообщений по условию, работает только на первом листе, нужно что бы работал на всех листах.
jakkop написал: нужно что бы работал на всех листах
На всех, так на всех
Скрытый текст
Код
Sub mail_30()
Dim iSh As Worksheet
For Each iSh In ThisWorkbook.Worksheets
iLastrow = iSh.Cells(iSh.Rows.Count, 1).End(xlUp).Row
For i = 2 To iLastrow
If iSh.Range("k" & i).Value = "Отправить" Then
Set OutApp = CreateObject("Outlook.Application")
OutApp.Session.Logon
On Error GoTo cleanup
Set OutMail = OutApp.CreateItem(0)
On Error Resume Next
With OutMail
.To = iSh.Range("j" & i).Value
.Subject = "Новый документ."
.HTMLBody = "<p style='font-family:Tahoma;font-size:14'>" & "Здравствуйте, " & iSh.Range("d" & i).Value & vbCrLf & "." & _
"<p style='font-family:Tahoma;font-size:14'>" & "Вы получили это сообщение, так как Вам отписан документ " & iSh.Range("a" & i).Value & "." & _
"<p style='font-family:Tahoma;font-size:14'>" & "Документ в папке с файлами U:\Документооборот\" & iSh.Range("l" & i).Value & vbCrLf & "." & _
"<p style='font-family:Tahoma;font-size:14'>" & "Это сообщение отправлено системой автоматически, пожалуйста, не отвечайте на него." & vbCrLf & _
"<p style='font-family:Tahoma;font-size:14'>" & "Система автоматического уведомления."
.Display
End With
On Error GoTo 0
Set OutMail = Nothing
cleanup:
Set OutApp = Nothing
End If
Next
Next
End Sub
Согласие есть продукт при полном непротивлении сторон