У меня есть инструмент, в котором пользователь нажимает кнопку макроса, и он отправляет диапазон листа в теле письма в Outlook.
У нас возникает проблема, которая иногда может быть более 1000 рядов
Получателю все равно придется скопировать и вставить его в рабочую книгу, поэтому я хотел дать отправителю возможность с помощью MsgBox выбрать, хотят ли они, чтобы диапазон отправлялся как вложение или в теле письма Outlook
ниже код, который у меня есть:
Sub Main()
Dim rng As Range
Dim OutApp As Object
Dim OutMail As Object
Dim lastRow As Long
Set rng = Nothing
On Error Resume Next
lastRow = Sheets("Sheet1").Columns(1).Find("*", , xlValues, , xlByRows, xlPrevious).Row
Set rng = Sheets("Sheet1").Range("A1:F" & lastRow).SpecialCells(xlCellTypeVisible)
On Error GoTo 0
If rng Is Nothing Then
MsgBox "The selection is not a range or the sheet is protected" & _
vbNewLine & "please correct and try again.", vbOKOnly
Exit Sub
End If
With Application
.EnableEvents = False
.ScreenUpdating = False
End With
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
On Error Resume Next
With OutMail
.To = Sheets("Contacts").Range("F4").Value
.CC = "isaac.santos@expeditors.com,sju-ivm@expeditors.com"
.BCC = ""
.Subject = "Expeditors Statement"
.HTMLBody = RangetoHTML(rng)
.Display
End With
On Error GoTo 0
With Application
.EnableEvents = True
.ScreenUpdating = True
End With
Set OutMail = Nothing
Set OutApp = Nothing
End Sub