Есть макрос, который сортирует диапазон (код написан Roman Rioran Voronov и изменен под мои нужды), по вырбранному значению столбца, а дальше кнопкой отправляет на мейл. Никак не могу сделать, чтобы макрос отправлял данные автоматически (с каждого листа, а их 100+ шт на свой мейл). Есть вариант, сделать названия листов "Sheet1, Sheet2" и.т.д. но нет вариантов как это реализовать.
Марос внизу отправляет текучий лист (нужно заходить на каждый лист и кликать отправить).
[vba]
Код
Sub Sent_this_Sheet() Dim cell As Range
ActiveSheet.Copy With ActiveWorkbook .SendMail Recipients:=Range("C4"), Subject:="Do not reply" .Close SaveChanges:=False End With
End Sub
[/vba]
Можно отправиль выбранны лист таким способом
[vba]
Код
Sub final_test()
Dim cell As Range
ThisWorkbook.Sheets("Sheet2").Copy With ActiveWorkbook .SendMail Recipients:=Range("C4"), Subject:="RO Macros test - DO NOT REPLY" .Close SaveChanges:=False End With
End Sub
[/vba]
Тут C4 - ссылка на колонку с мейлом.
Всем привет.
Есть макрос, который сортирует диапазон (код написан Roman Rioran Voronov и изменен под мои нужды), по вырбранному значению столбца, а дальше кнопкой отправляет на мейл. Никак не могу сделать, чтобы макрос отправлял данные автоматически (с каждого листа, а их 100+ шт на свой мейл). Есть вариант, сделать названия листов "Sheet1, Sheet2" и.т.д. но нет вариантов как это реализовать.
Марос внизу отправляет текучий лист (нужно заходить на каждый лист и кликать отправить).
[vba]
Код
Sub Sent_this_Sheet() Dim cell As Range
ActiveSheet.Copy With ActiveWorkbook .SendMail Recipients:=Range("C4"), Subject:="Do not reply" .Close SaveChanges:=False End With
End Sub
[/vba]
Можно отправиль выбранны лист таким способом
[vba]
Код
Sub final_test()
Dim cell As Range
ThisWorkbook.Sheets("Sheet2").Copy With ActiveWorkbook .SendMail Recipients:=Range("C4"), Subject:="RO Macros test - DO NOT REPLY" .Close SaveChanges:=False End With
Если я правильно понял, нужен цикл по всем листам книги, исключая некоторые из них: [vba]
Код
Sub final_test_2() Dim wks As Worksheet For Each wks In ThisWorkbook.Worksheets 'цикл по всем листам книги Select Case wks.Name Case "Menu", "Data" 'имена листов, которые надо исключить из отправки Case Else 'для всех остальных - отправка wks.Copy 'очередной лист копируется в новую книгу With ActiveWorkbook 'новая книга мылится и закрывается .SendMail Recipients:=Range("C4"), Subject:="RO Macros test - DO NOT REPLY" .Close SaveChanges:=False End With End Select Next wks End Sub
[/vba]
Если я правильно понял, нужен цикл по всем листам книги, исключая некоторые из них: [vba]
Код
Sub final_test_2() Dim wks As Worksheet For Each wks In ThisWorkbook.Worksheets 'цикл по всем листам книги Select Case wks.Name Case "Menu", "Data" 'имена листов, которые надо исключить из отправки Case Else 'для всех остальных - отправка wks.Copy 'очередной лист копируется в новую книгу With ActiveWorkbook 'новая книга мылится и закрывается .SendMail Recipients:=Range("C4"), Subject:="RO Macros test - DO NOT REPLY" .Close SaveChanges:=False End With End Select Next wks End Sub