2016-11-08 4 views
0

Я использую этот макрос, чтобы отправить книгу в виде вложения (Book1.xlsx)Отправить выбор из Excel по электронной почте в качестве вложения

Sub Macro2_SendByEMail() 

' Copy the sheet(1) 
ThisWorkbook.Sheets(1).Copy 

' Send Email 
With ActiveWorkbook 
.SendMail Recipients:=Array("[email protected]", "[email protected]"), Subject:="Addresses [" & Format(Date, "dd/mm/yy") & "]" 
.Close SaveChanges:=False 
End With 

End Sub 

Но я не могу выяснить, как изменить код так, что я отправить только первые три столбца рабочей книги ...

Спасибо за помощь!

+0

Думайте, что вам нужно будет использовать библиотеку электронной почты, предположительно Outlook, и создать '.Body' сообщения. –

ответ

0

Вы можете попробовать это:

Option Explicit 

Sub Macro2_SendByEMail() 

' Copy the sheet(1) 
    Dim my_range As Range 
    Dim l_row  As Long 

    l_row = ThisWorkbook.Sheets(1).UsedRange.Rows.Count 
    With ThisWorkbook.Sheets(1) 
     Set my_range = .Range(.Cells(1, 1), .Cells(l_row, 3)) 
    End With 

    my_range.Copy 

    ' Send Email 
    With ActiveWorkbook 
    .SendMail Recipients:=Array("[email protected]", "[email protected]"), Subject:="Addresses [" & Format(Date, "dd/mm/yy") & "]" 
    .Close SaveChanges:=False 
    End With 

End Sub 

Идея заключается в том, что вы берете последнюю строку используемого диапазона в первом листе, и на его основе можно определить выбор для копирования.

+0

К сожалению, это не сработает. Я думаю, что проблема заключается в разделе «Отправить электронную почту», есть еще «С ActiveWorkbook», где, вероятно, должно быть что-то вроде «With ActiveSelection». Плюс я не против, если диапазон состоит из целых 3 столбцов ... – teaspoon

+1

[ 'SendMail'] (https://msdn.microsoft.com/en-us/library/office/ff821053.aspx) - это метод объекта« Рабочая книга », который _« Отправляет книгу с использованием установленной почтовой системы »_. Поэтому вы можете использовать его только для отправки всей книги. В противном случае вам придется использовать объектную модель Outlook. – user3598756

+0

Может быть, я только что сделал код vba, выбрав первые 3 столбца, не заботясь обо всем остальном, потому что у меня нет выбора. – Vityata

Смежные вопросы