By 손님 01년 2018월 XNUMX일 토요일
에 게시 됨 Excel 용 Kutools
답글 0
좋아 0
조회수 2.6K
투표 0
업무용 프로젝트를 지원하기 위해 kutools를 설치했습니다. 또한 입력된 정보로 이메일을 생성하는 매크로가 있는 대규모 회사 보고서를 관리합니다. 해당 매크로가 내 컴퓨터에서 작동을 멈췄습니다. kutools가 없는 컴퓨터에서 작동합니다. 전에 이런 일을 겪은 사람이 있습니까? 다음은 다른 컴퓨터에서 잘 작동하는 매크로입니다.

하위 Mail_Sheet_Outlook_Body()
'Excel 2000-2016에서 작업
애플리케이션.참조 스타일 = xlA1
범위로 희미한 rng
OutApp을 개체로 흐리게 처리
OutMail을 개체로 흐리게 처리
Dim xFolder를 문자열로
워크시트로 Dim xSht
Dim xSub를 문자열로
문자열로 희미한 응답
희미한 메시지를 문자열로
Dim 스타일을 문자열로
문자열로 희미한 제목

xSht = ActiveSheet 설정
Msg = "이 양식을 이메일로 보내시겠습니까?" ' 메시지를 정의합니다.
Style = vbYesNo + vbCritical + vbDefaultButton2 ' 버튼을 정의합니다.
Title = "이메일 전송 확인" ' 제목을 정의합니다.
응답 = MsgBox(메시지, 스타일)

응답 = vbYes 그렇다면
xFolder = Environ("USERPROFILE") + "\Desktop\" + "\Field Audit Form--" + CStr(xSht.Cells(19, "A").Value) + "--.pdf"
'xSub = "매장에 대한 필드 감사 " + CStr(xSht.Cells(19, "A").Value)
신청서 첨부
.EnableEvents = False
.ScreenUpdating = False


rng = 아무것도 설정하지 않음
rng = ActiveSheet.UsedRange 설정
'시트 이름을 사용할 수도 있습니다.
'Set rng = Sheets("YourSheet").UsedRange

OutApp = CreateObject("Outlook.Application") 설정
OutMail 설정 = OutApp.CreateItem(0)
varCellvalue가 길어짐




오류에 대한 다음 재개
아웃메일과 함께
.To = ""
.CC = ""
.BCC = ""
.Subject = "요약"
.Attachments.xFolder 추가
.HTMLBody = HTML 범위(rng)
.Display '또는 .Display 사용


오류 발생시 0

신청서 첨부
.EnableEvents = True
.ScreenUpdating = True


OutMail 설정 = 없음
OutApp 설정 = 없음
END IF
최종 하위


함수 RangetoHTML(rng As Range)
' Office 2000-2016에서 작업
개체로 희미한 fso
객체로 Dim ts
Dim TempFile을 문자열로
통합 문서로 Dim TempWB

TempFile = Environ$("temp") & "\" & Format(Now, "dd-mm-yy h-mm-ss") & ".htm"

'범위를 복사하고 데이터를 붙여 넣을 새 통합 문서를 만듭니다.
rng.복사
TempWB = Workbooks.Add(1) 설정
TempWB.Sheets 사용(1)
.Cells(1).PasteSpecial 붙여넣기:=8
.Cells(1).PasteSpecial xlPasteValues, , 거짓, 거짓
.Cells(1).PasteSpecial xlPasteFormats, , 거짓, 거짓
.셀(1).선택
Application.CutCopyMode = False
오류에 대한 다음 재개
.DrawingObjects.Visible = 참
.드로잉객체.삭제
오류 발생시 0


'시트를 htm 파일로 게시
TempWB.PublishObjects.Add( _
소스 유형:=xlSourceRange, _
파일 이름:=TempFile, _
시트:=TempWB.Sheets(1).이름, _
출처:=TempWB.Sheets(1).UsedRange.Address, _
HtmlType:=xlHtmlStatic)
.게시(참)


' htm 파일의 모든 데이터를 RangetoHTML로 읽기
fso = CreateObject ( "Scripting.FileSystemObject") 설정
설정 ts = fso.GetFile(TempFile).OpenAsTextStream(1, -2)
RangetoHTML = ts.readall
ts.닫기
RangetoHTML = 바꾸기(RangetoHTML, "align=center x:publishsource=", _
"정렬=왼쪽 x:publishsource=")

'TempWB 닫기
TempWB.Close savechanges:=False

'이 함수에서 사용한 htm 파일을 삭제합니다.
임시 파일 죽이기
ts = 아무것도 설정하지 않음
설정 fso = 없음
TempWB = 없음으로 설정

최종 기능
전체 게시물보기