Хотите отправить диапазон Excel с Outlook. Но я хочу дать пользователю возможность прикрепить или скопировать в тело - PullRequest
0 голосов
/ 20 февраля 2020

У меня есть инструмент, в котором пользователь нажимает кнопку макроса, и он отправляет диапазон листа в теле письма в 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...