Lunedi, 29 marzo 2021
  0 Risposte
  2.8K visite
0
voti
Disfare
Ciao, sto usando il tuo codice per inviare un intervallo di Excel come allegato di posta elettronica, ma ottengo un errore di runtime se annullo l'intervallo. C'è del codice che posso aggiungere o un msgbox per favore per evitare che ciò accada? Grazie codice qui sotto.

Sub SendRange()
Dim xFile come stringa
Dim xFormat quanto a lungo
Dim Wb come cartella di lavoro
Dim Wb2 come cartella di lavoro
Oscura Ws come foglio di lavoro
Attenuare FilePath come stringa
Dim FileName As String
Oscura OutlookApp come oggetto
Oscura OutlookMail come oggetto
Dim WorkRng come intervallo
xTitleId = "Esempio"
Set WorkRng = Selezione.Applicazione
Imposta WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Tipo:=8)

Application.ScreenUpdating = False
Application.DisplayAlerts = False
Imposta Wb = Application.ActiveWorkbook
Wb.Fogli.Add
Imposta Ws = Application.ActiveSheet
LavoroRng.Copia Ws.Cells(1, 1)
Ws.Copia
Imposta Wb2 = Application.ActiveWorkbook
Selezionare Caso Wb.FileFormat
Caso xlOpenXMLCartella di lavoro:
    xFile = ".xlsx"
    xFormato = xlOpenXMLCartella di lavoro
Caso xlOpenXMLWorkbookMacroEnabled:
    Se Wb2.HasVBProject allora
        xFile = ".xlsm"
        xFormat = xlOpenXMLWorkbookMacroEnabled
    Altro
        xFile = ".xlsx"
        xFormato = xlOpenXMLCartella di lavoro
    End If
Caso Excel8:
    xFile = ".xls"
    xFormato = Excel8
Caso xlExcel12:
    xFile = ".xlsb"
    xFormato = xlExcel12
End Select
PercorsoFile = Ambiente$("temp") & "\"
FileName = Wb.Name & Format(Ora, "gg-mmm-aa h-mm-ss")
Imposta OutlookApp = CreateObject ("Outlook.Application")
Imposta OutlookMail = OutlookApp.CreateItem(0)
Wb2.SaveAs FilePath & FileName & xFile, FileFormat:=xFormat
Con Posta di Outlook
    .A = ""
    .CC = ""
    .BCC = ""
    .Oggetto = "Prove"
    .Body = "Ciao."
    .Allegati.Aggiungi Wb2.FullName
    .Spedire
Fine Con
Wb2.Chiudi
Uccidi FilePath & FileName & xFile
Imposta OutlookMail = Niente
Imposta OutlookApp = Niente
Ws.Cancella
Application.DisplayAlerts = Vero
Application.ScreenUpdating = True
End Sub
 
Non ci sono ancora risposte per questo post.