By 그웬테일러 29 년 2021 월 XNUMX 일 월요일
에 게시 됨 뛰어나다
답글 0
좋아 0
조회수 2.8K
투표 0
안녕하세요 저는 귀하의 코드를 사용하여 Excel 범위를 전자 메일 첨부 파일로 보내고 있지만 범위를 취소하면 런타임 오류가 발생합니다. 내가 추가할 수 있는 코드나 이런 일이 발생하지 않도록 msgbox가 있습니까? 아래 코드 감사합니다.

하위 SendRange()
Dim xFile을 문자열로
xFormat을 최대한 흐리게
통합 문서로 희미한 Wb
통합 문서로 희미한 Wb2
워크시트로 희미한 W
Dim FilePath를 문자열로
문자열로 Dim FileName
OutlookApp을 개체로 흐리게 처리
OutlookMail을 개체로 흐리게 처리
희미한 작업 범위
xTitleId = "예시"
Set WorkRng = 응용 프로그램.선택
WorkRng 설정 = Application.InputBox("범위", xTitleId, WorkRng.Address, 유형:=8)

Application.ScreenUpdating = False
Application.DisplayAlerts = False
Wb = Application.ActiveWorkbook 설정
Wb.워크시트.추가
설정 Ws = Application.ActiveSheet
WorkRng.Copy Ws.Cells(1, 1)
Ws.복사
Wb2 = Application.ActiveWorkbook 설정
케이스 Wb.FileFormat 선택
사례 xlOpenXMLWorkbook:
    xFile = ".xlsx"
    xFormat = xlOpenXML워크북
케이스 xlOpenXMLWorkbookMacroEnabled:
    Wb2.HasVBProject이면
        xFile = ".xlsm"
        xFormat = xlOpenXMLWorkbookMacroEnabled
    다른
        xFile = ".xlsx"
        xFormat = xlOpenXML워크북
    END IF
사례 Excel8:
    xFile = ".xls"
    x형식 = Excel8
케이스 xlExcel12:
    xFile = ".xlsb"
    x형식 = xlExcel12
선택 종료
파일 경로 = Environ$("temp") & "\"
파일 이름 = Wb.Name 및 형식(지금, "dd-mmm-yy h-mm-ss")
OutlookApp = CreateObject("Outlook.Application") 설정
OutlookMail 설정 = OutlookApp.CreateItem(0)
Wb2.SaveAs FilePath & FileName & xFile, FileFormat:=xFormat
OutlookMail 사용
    .To = "gtest@email.com"
    .CC = ""
    .BCC = ""
    .Subject = "테스트"
    .Body = "안녕하세요."
    .Attachments.Wb2.FullName 추가
    .보내다

Wb2.닫기
FilePath & FileName & xFile 죽이기
OutlookMail 설정 = 없음
OutlookApp 설정 = 없음
삭제
Application.DisplayAlerts = 참
Application.ScreenUpdating = True
최종 하위
 
전체 게시물보기