Note: The other languages of the website are Google-translated. Back to English

Excel에서 셀 값을 기반으로 전자 메일을 자동으로 보내는 방법은 무엇입니까?

Excel의 지정된 셀 값을 기반으로 Outlook을 통해 특정 수신자에게 이메일을 보내려고한다고 가정합니다. 예를 들어 워크 시트의 D7 셀 값이 200보다 크면 전자 메일이 자동으로 생성됩니다. 이 기사에서는이 문제를 빠르게 해결할 수있는 VBA 방법을 소개합니다.

VBA 코드로 셀 값에 따라 자동으로 이메일 보내기


VBA 코드로 셀 값에 따라 자동으로 이메일 보내기

Excel에서 셀 값을 기준으로 이메일을 보내려면 다음과 같이하십시오.

1. 워크 시트에서 셀 값 (여기서는 셀 D7)을 기준으로 전자 메일을 보내야합니다. 시트 탭을 마우스 오른쪽 단추로 클릭하고 코드보기 상황에 맞는 메뉴에서. 스크린 샷보기 :

2. 팝업에서 응용 프로그램 용 Microsoft Visual Basic 아래 VBA 코드를 복사하여 시트 코드 창에 붙여 넣으십시오.

VBA 코드 : Excel의 셀 값을 기반으로 Outlook을 통해 전자 메일 보내기

Dim xRg As Range
'Update by Extendoffice 2018/3/7
Private Sub Worksheet_Change(ByVal Target As Range)
    On Error Resume Next
    If Target.Cells.Count > 1 Then Exit Sub
  Set xRg = Intersect(Range("D7"), Target)
    If xRg Is Nothing Then Exit Sub
    If IsNumeric(Target.Value) And Target.Value > 200 Then
        Call Mail_small_Text_Outlook
    End If
End Sub
Sub Mail_small_Text_Outlook()
    Dim xOutApp As Object
    Dim xOutMail As Object
    Dim xMailBody As String
    Set xOutApp = CreateObject("Outlook.Application")
    Set xOutMail = xOutApp.CreateItem(0)
    xMailBody = "Hi there" & vbNewLine & vbNewLine & _
              "This is line 1" & vbNewLine & _
              "This is line 2"
    On Error Resume Next
    With xOutMail
        .To = "Email Address"
        .CC = ""
        .BCC = ""
        .Subject = "send by cell value test"
        .Body = xMailBody
        .Display   'or use .Send
    End With
    On Error GoTo 0
    Set xOutMail = Nothing
    Set xOutApp = Nothing
End Sub

노트:

1). VBA 코드에서, D7값> 200 이메일을 보낼 셀 및 셀 값입니다.
2). 필요에 따라 이메일 본문을 변경하십시오. xMailBody 코드의 줄.
삼). 이메일 주소를 줄에 있는 받는 사람 이메일 주소로 바꿉니다. .To = "이메일 주소".
4). 그리고 필요에 따라 참조 및 숨은 참조 수신자를 지정하십시오. .CC =“”숨은 참조 =“” 섹션을 참조하십시오.
5). 마지막으로 이메일 제목을 줄에서 변경하십시오. .Subject = "셀 값 테스트로 보내기".

3. 누르세요 다른 + Q 함께 키를 닫습니다 응용 프로그램 용 Microsoft Visual Basic 창.

이제부터 D7 셀에 입력 한 값이 200보다 크면 지정된받는 사람과 본문이있는 전자 메일이 Outlook에서 자동으로 생성됩니다. 클릭 할 수 있습니다 전송 버튼을 눌러이 이메일을 보냅니다. 스크린 샷보기 :

노트:

1. VBA 코드는 Outlook을 전자 메일 프로그램으로 사용할 때만 작동합니다.

2. D7 셀에 입력 된 데이터가 텍스트 값이면 이메일 창도 팝업됩니다.


Excel에서 생성 된 메일 링리스트의 필드를 기반으로 Outlook을 통해 쉽게 이메일을 보낼 수 있습니다.

또한 이메일 보내기 ~의 유용성 Excel 용 Kutools Excel에서 생성 된 메일 링리스트를 기반으로 사용자가 Outlook을 통해 이메일을 보낼 수 있도록 도와줍니다.
지금 다운로드하여 사용해 보세요! (30-하루 무료 트레일)


관련 기사 :


최고의 사무 생산성 도구

Excel용 Kutools는 대부분의 문제를 해결하고 생산성을 80% 증가시킵니다.

  • 재사용: 빠르게 삽입 복잡한 공식, 차트 그리고 이전에 사용한 모든 것; 셀 암호화 암호로; 메일 링리스트 생성 이메일 보내기 ...
  • 슈퍼 포뮬러 바 (여러 줄의 텍스트와 수식을 쉽게 편집 할 수 있습니다.) 레이아웃 읽기 (많은 수의 셀을 쉽게 읽고 편집합니다.) 필터링 된 범위에 붙여 넣기...
  • 셀 / 행 / 열 병합 데이터 손실없이; 셀 내용 분할; 중복 행 / 열 결합... 중복 셀 방지; 범위 비교...
  • 중복 또는 고유 선택 행; 빈 행 선택 (모든 셀이 비어 있음); 슈퍼 찾기 및 퍼지 찾기 많은 통합 문서에서; 무작위 선택 ...
  • 정확한 사본 수식 참조를 변경하지 않고 여러 셀; 참조 자동 생성 여러 시트에; 글 머리 기호 삽입, 확인란 등 ...
  • 텍스트 추출, 텍스트 추가, 위치 별 제거, 공간 제거; 페이징 부분합을 만들고 인쇄합니다. 셀 내용과 주석 간 변환...
  • 슈퍼 필터 (다른 시트에 필터 구성표 저장 및 적용) 고급 정렬 월 / 주 / 일, 빈도 등 특수 필터 굵은 기울임 꼴로 ...
  • 통합 문서와 워크 시트 결합; 키 열을 기반으로 테이블 병합; 데이터를 여러 시트로 분할; xls, xlsx 및 PDF 일괄 변환...
  • 300개 이상의 강력한 기능. Office / Excel 2007-2021 및 365를 지원합니다. 모든 언어를 지원합니다. 기업 또는 조직에서 쉽게 배포할 수 있습니다. 전체 기능은 30일 무료 평가판입니다. 60일 환불 보장.
kte 탭 201905

Office Tab은 Office에 탭 인터페이스를 제공하여 작업을 훨씬 쉽게 만듭니다.

  • Word, Excel, PowerPoint에서 탭 편집 및 읽기 사용, Publisher, Access, Visio 및 Project.
  • 새 창이 아닌 동일한 창의 새 탭에서 여러 문서를 열고 만듭니다.
  • 생산성을 50% 높이고 매일 수백 번의 마우스 클릭을 줄입니다!
officetab 하단
코멘트 (307)
5에서 평가 된 5 · 1 등급
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
전체 셀 범위에 적용하려면 코드를 어떻게 수정해야 합니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
친애하는 데비,
문제를 해결하려면 아래 VBA 코드를 시도하십시오.

개인 하위 Worksheet_Change (범위로 ByVal 대상)
Target.Cells.Count > 1이면 Sub 종료
If (Not Intersect(Target, Range("A1:D4")) Is Nothing) And (Target.Value > 200) then
Mail_small_Text_Outlook에 전화
END IF
최종 하위
하위 Mail_small_Text_Outlook()
개체로 Dim xOutApp
Dim xOutMail을 개체로
Dim xMailBody를 문자열로
xOutApp 설정 = CreateObject("Outlook.Application")
xOutMail = xOutApp.CreateItem(0) 설정
xMailBody = "안녕하세요" & vbNewLine & vbNewLine & _
"이것은 라인 1입니다" & vbNewLine & _
"이것이 2호선입니다"
오류에 대한 다음 재개
xOutMail과 함께
.To = "받는 사람의 이메일 주소"
.CC = ""
.BCC = ""
.Subject = "셀 값 테스트로 보내기"
.Body = xMailBody
.Display '또는 .Send 사용

오류 발생시 0
xOutMail 설정 = 없음
xOutApp = 없음 설정
최종 하위
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
셀의 값이 간접적으로 변경된 경우 이 코드를 표시하는 데 문제가 있습니다. 예를 들어, 이 값을 자동으로 변경하는 Sum 방정식이 있는 경우. 방정식이 실행되고 값이 설정 값을 초과하여 이메일을 표시하면 내가 직접 숫자를 변경하지 않는 한 그렇게 하지 않습니다. 간접적으로 변경된 경우에도 이메일을 안내하는 방법이 있나요?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
친애하는 조던,
다음 VBA 코드는 문제를 해결하는 데 도움이 될 수 있습니다. 코드에서 "이메일 주소"를 받는 사람의 이메일 주소로 바꾸는 것을 잊지 마십시오. 고맙습니다.

개인 하위 Worksheet_Change (범위로 ByVal 대상)
범위로 Dim xRgPre
오류에 대한 다음 재개
Target.Cells.Count > 1이면 Sub 종료
xRg = Range ( "D7") 설정
xRgPre = xRg.Precedents 설정
xRg.Value > 200이면
Target.Address = xRg.Address이면
Mail_small_Text_Outlook에 전화
ElseIf(xRgPre가 아닌 것은 아무것도 아님) 및 (Intersect(Target, xRgPre).Address = Target.Address) 그런 다음
Mail_small_Text_Outlook에 전화
END IF
END IF
최종 하위
하위 Mail_small_Text_Outlook()
개체로 Dim xOutApp
Dim xOutMail을 개체로
Dim xMailBody를 문자열로
xOutApp 설정 = CreateObject("Outlook.Application")
xOutMail = xOutApp.CreateItem(0) 설정
xMailBody = "안녕하세요" & vbNewLine & vbNewLine & _
"이것은 라인 1입니다" & vbNewLine & _
"이것이 2호선입니다"
오류에 대한 다음 재개
xOutMail과 함께
.To = "이메일 주소"
.CC = ""
.BCC = ""
.Subject = "셀 값 테스트로 보내기"
.Body = xMailBody
.Display '또는 .Send 사용

오류 발생시 0
xOutMail 설정 = 없음
xOutApp = 없음 설정
최종 하위
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
내 응용 프로그램에서 작동하도록 제안된 코드를 수정했습니다.
xRg = Range("C2:C40") 및 If xRg.Value = -1이 변경되었습니다.

내가 겪고있는 문제는 셀에 변경 사항이있을 때마다 내 범위의 셀 중 하나가 = -1 인 한 Mail_small_Text_Outlook을 호출한다는 것입니다.
내 범위의 셀이 간접적으로 -1로 변경된 경우에만 호출하려고 합니다.
또한 두 가지 기준을 충족할 수 있는지 여부와 방법에 대해서도 궁금했습니다.
범위 A와 범위 B를 확인하고 기준을 충족하는 경우 함수를 호출합니다.

도움을 주셔서 미리 감사드립니다. 나는 이 모든 것에 익숙하지 않지만 이 스레드를 읽으면 약 90%가 거기에 있습니다.


개인 하위 Worksheet_Change (범위로 ByVal 대상)
범위로 Dim xRgPre
오류에 대한 다음 재개
Target.Cells.Count > 1이면 Sub 종료
xRg = 범위 설정("C2:C40")
xRgPre = xRg.Precedents 설정
xRg.Value = -1이면
Target.Address = xRg.Address이면
Mail_small_Text_Outlook에 전화
ElseIf(xRgPre가 아닌 것은 아무것도 아님) 및 (Intersect(Target, xRgPre).Address = Target.Address) 그런 다음
Mail_small_Text_Outlook에 전화
END IF
END IF
최종 하위
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
이 코드를 전체 열에 적용한 유일한 변경 사항으로 사용했습니다[Set xRg = Range("D4:D13")]. 이제 D 열의 밸브가 목표 값 미만인지 여부에 관계없이 계산이 수행될 때마다 이벤트가 트리거됩니다. 그 이유는 무엇입니까?


범위로 희미한 Xrg
개인 하위 Worksheet_Change (범위로 ByVal 대상)
범위로 Dim xRgPre
오류에 대한 다음 재개
Target.Cells.Count > 1이면 Sub 종료
Xrg = 범위 설정("D4:D13")
xRgPre = Xrg.Precedents 설정
Xrg.Value < 1200이면
Target.Address = Xrg.Address이면
Mail_small_Text_Outlook에 전화
ElseIf(xRgPre가 아닌 것은 아무것도 아님) 및 (Intersect(Target, xRgPre).Address = Target.Address) 그런 다음
Mail_small_Text_Outlook에 전화
END IF
END IF
최종 하위

하위 Mail_small_Text_Outlook()
개체로 Dim xOutApp
Dim xOutMail을 개체로
Dim xMailBody를 문자열로
xOutApp 설정 = CreateObject("Outlook.Application")
xOutMail = xOutApp.CreateItem(0) 설정
xMailBody = "안녕하세요" & vbNewLine & _
"테스트 vba" _
& vbNewLine & _
"라인 2."
오류에 대한 다음 재개
xOutMail과 함께
.To = ""
.CC = ""
.BCC = ""
.Subject = "자동 이메일 테스트"
.Body = xMailBody
.디스플레이

오류 발생시 0
xOutMail 설정 = 없음
xOutApp = 없음 설정

최종 하위


감사.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요

이메일 수신자를 하나씩 추가해야 하기 때문에 문제가 있습니다. 이메일 수신자 목록을 이 기능에 추가할 수 있는지 안내해 주십시오. 제공되는 이메일 주소 목록 또는 목록 업로드 기능이 이메일 주소 목록에서 이메일 주소를 선택하고 기능이 이미 작성된 이메일을 원하는 수신자에게 보낼 수 있도록 합니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
친애하는 헨리,
다음 VBA 코드는 문제를 해결하는 데 도움이 될 수 있습니다. VBA 스크립트를 워크시트 모듈에 넣으십시오. 지정된 셀의 값이 조건을 충족하면 Excel용 Kutools 대화 상자가 나타나면 수신자의 이메일 주소가 포함된 셀을 선택한 다음 확인 버튼을 클릭하십시오. 그런 다음 지정된 수신자가 있는 이메일이 열립니다. 필요에 따라 보내주십시오.

개인 하위 Worksheet_Change (범위로 ByVal 대상)
Target.Cells.Count > 1이면 Sub 종료
xRg = Range ( "D7") 설정
xRg = Target 및 Target.Value > 200이면
Mail_small_Text_Outlook에 전화
END IF
최종 하위
하위 Mail_small_Text_Outlook()
개체로 Dim xOutApp
Dim xOutMail을 개체로
Dim xMailBody를 문자열로
Dim xRgMsg As Range
xCell을 범위로 흐리게 처리
Set xRgMsg = Application.InputBox("주소 셀을 선택하십시오:", "Kutools for Excel", , , , , , 8)
xMailBody = "안녕하세요" & vbNewLine & vbNewLine & _
"이것은 라인 1입니다" & vbNewLine & _
"이것이 2호선입니다"
오류에 대한 다음 재개
xRgMsg의 각 xCell에 대해
xOutApp 설정 = CreateObject("Outlook.Application")
xOutMail = xOutApp.CreateItem(0) 설정
xOutMail과 함께
.To = x셀.값
.CC = ""
.BCC = ""
.Subject = "셀 값 테스트로 보내기"
.Body = xMailBody
.Display '또는 .Send 사용

xOutApp = 없음
xOutMail = 없음
다음
오류 발생시 0
최종 하위
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
수동 중단 없이 자동으로 메일이 전송됩니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
친애하는 브라흐마,
이메일을 표시하지 않고 직접 보내려면 위의 VBA 코드에서 ".Display" 줄을 ".Send"로 바꾸십시오.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요 같은 스크립트를 넣었지만 작동하지 않습니다 첫 번째 부분에서 저를 도와주세요

범위로 Dim xRg

개인 하위 Worksheet_Change (범위로 ByVal 대상)
Target.Cells.Count > 1이면 Sub 종료
xRg = Range ( "D7") 설정
xRg = Target 및 Target.Value = 200이면
Mail_small_Text_Outlook에 전화
END IF

최종 하위
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
친애하는 바질,
코드를 실행할 때 경고가 있습니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요, 이 코드를 수정하여 셀 그룹에 "일치하지 않음"이라는 문자열이 있는지 확인하고 있는 경우 이메일을 보내려면 어떻게 하시겠습니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
친애하는 호세,
아래 VBA 코드를 시도하십시오. 코드 실행 시 대화상자가 뜨는데 문자열을 확인할 범위를 선택하고 확인 버튼을 클릭합니다. 문자열이 존재하지 않으면 프롬프트 대화 상자가 나타납니다. 문자열이 범위에 있으면 지정된 수신자, 제목 및 본문이 있는 이메일이 표시됩니다.

하위 SendEmail()
흐릿한 I As Long
딤 J As Long
범위로 Dim xRg
희미한 xArr
개체로 Dim xOutApp
Dim xOutMail을 개체로
Dim xMailBody를 문자열로
부울로 Dim xFlag
오류에 대한 다음 재개
xRg 설정 = Application.InputBox("범위를 선택하세요", "Excel용 Kutools", Selection.Address, , , , , 8)
xRg가 아무것도 없으면 Sub를 종료하십시오.
xArr = xRg.값
xFlag = 거짓
I = 1 UBound(xArr)까지
J = 1 UBound(xArr, 2)의 경우
xArr(I, J) = "일치하지 않음"이면
xFlag = 참
END IF
다음
다음
만약 xFlag 다음
xOutApp 설정 = CreateObject("Outlook.Application")
xOutMail = xOutApp.CreateItem(0) 설정
xMailBody = "안녕하세요" & vbNewLine & vbNewLine & _
"이것은 라인 1입니다" & vbNewLine & _
"이것이 2호선입니다"
xOutMail과 함께
.To = "이메일 주소"
.CC = ""
.BCC = ""
.제목 = "일치"
.Body = xMailBody
.Display '또는 .Send 사용

다른
MsgBox "일치하는 값이 없습니다", vbInformation, "KuTools for Excel"
END IF
최종 하위
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
학생 성적을 학부모에게 보내기 위해 이 코드를 어떻게 변경할 수 있습니까? 여기서 A열은 성적이고 B열은 상위 이메일입니다. 각 학생의 이메일을 F로 채우고 싶습니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
친애하는 프랭크,
아래 VBA 코드는 문제를 해결하는 데 도움이 될 수 있습니다. 고맙습니다.

하위 Mail_small_Text_Outlook()
범위로 Dim xRg
흐릿한 I As Long
xRows As Long
Dim xVal을 문자열로
개체로 Dim xOutApp
Dim xOutMail을 개체로
Dim xMailBody를 문자열로
오류에 대한 다음 재개
Set xRg = Application.InputBox("등급 열과 이메일 열(8열)을 선택하세요.", "Kutools for Excel", Selection.Address, , , , , XNUMX)
xRg가 아무것도 없으면 Sub를 종료하십시오.
xRows = xRg.Rows.Count
xRg = xRg(2)로 설정
I = 1에서 xRows까지
xVal = xRg.Offset(I, -1).텍스트
xVal = "F"인 경우
xOutApp 설정 = CreateObject("Outlook.Application")
xOutMail = xOutApp.CreateItem(0) 설정
xMailBody = "안녕하세요" & vbNewLine & vbNewLine & _
"이것은 자녀의 학년입니다. " & xRg.Offset(I, -1).Text
xOutMail과 함께
.to = xRg.Offset(I, 0).텍스트
.Subject = "셀 값 테스트로 보내기"
.Body = xMailBody
.Display '또는 .Send 사용

오류 발생시 0
xOutMail 설정 = 없음
xOutApp = 없음 설정
END IF
다음
최종 하위
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
이메일 주소 목록이 이미 Excel 파일에 있습니다. D7 셀이 200보다 큰 경우 해당 사람의 이메일 주소를 자동으로 선택하도록 코드를 수정하려면 어떻게 해야 합니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
좋은 날,
다음 VBA 코드는 문제를 해결하는 데 도움이 될 수 있습니다. VBA 스크립트를 워크시트 모듈에 넣으십시오. 지정된 셀의 값이 조건을 충족하면 Excel용 Kutools 대화 상자가 나타나면 수신자의 이메일 주소가 포함된 셀을 선택한 다음 확인 버튼을 클릭하십시오. 그런 다음 지정된 수신자가 있는 이메일이 열립니다. 필요에 따라 보내주십시오.

개인 하위 Worksheet_Change (범위로 ByVal 대상)
Target.Cells.Count > 1이면 Sub 종료
xRg = Range ( "D7") 설정
xRg = Target 및 Target.Value > 200이면
Mail_small_Text_Outlook에 전화
END IF
최종 하위
하위 Mail_small_Text_Outlook()
개체로 Dim xOutApp
Dim xOutMail을 개체로
Dim xMailBody를 문자열로
Dim xRgMsg As Range
xCell을 범위로 흐리게 처리
Set xRgMsg = Application.InputBox("주소 셀을 선택하십시오:", "Kutools for Excel", , , , , , 8)
xMailBody = "안녕하세요" & vbNewLine & vbNewLine & _
"이것은 라인 1입니다" & vbNewLine & _
"이것이 2호선입니다"
오류에 대한 다음 재개
xRgMsg의 각 xCell에 대해
xOutApp 설정 = CreateObject("Outlook.Application")
xOutMail = xOutApp.CreateItem(0) 설정
xOutMail과 함께
.To = x셀.값
.CC = ""
.BCC = ""
.Subject = "셀 값 테스트로 보내기"
.Body = xMailBody
.Display '또는 .Send 사용

xOutApp = 없음
xOutMail = 없음
다음
오류 발생시 0
최종 하위
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
Outlook을 통해 메일을 보내는 데 문제가 있습니다. "프로그램이 사용자를 대신하여 이메일을 보내려고 합니다. 예상치 못한 경우 거부하고 안티바이러스 소프트웨어가 최신 버전인지 확인하십시오"라는 오류가 나타납니다.
자동화가 안되니 도와주세요.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
죄송합니다.
내 경우에는 코드가 잘 작동합니다. Outlook에서 "대신 보내기" 기능이 구성되어 있는 것 같습니다. 그것을 확인하십시오.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요. 한 달에 한 번(귀하의 예에 따라) 또는 곧 만료되는(날짜에 따라) 수량 > 200인 과일 목록이 있는 관리자에게 이메일을 보내려고 할 때 어떤 코드를 사용할까요?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요
이 문서의 방법이 "Excel에서 마감일을 충족한 경우 이메일을 보내는 방법"일 수 있습니다. 당신을 도울 수 있습니다.
이 링크를 따르십시오 : https://www.extendoffice.com/documents/excel/4664-excel-send-email-if-due-date-has-been-met.html
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
셀의 날짜를 기준으로 이메일을 보내도록 코드를 편집하려면 어떻게 해야 합니까? 예를 들어, 15개월마다 문서를 검토해야 하고 12개월에 문서를 검토해야 한다는 이메일 주소로 이메일을 보내고 싶습니다. 이제 .Display를 .Send로 변경하여 이메일을 자동으로 보낼 수 있게 되었습니다. 작성된 대로 잘 작동하지만 정수 대신 날짜 기능을 사용하려면 무엇을 변경해야 하나요?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
"Set xRg = Range("D7")"에 다중 범위를 어떻게 추가할 수 있습니까? 편집하고 Range("D7:F7")를 추가하고 싶습니다. 그러나 런타임 오류 13, 유형 불일치 오류가 발생하고 If xRg = Target And Target.Value > 2 then으로 이동합니다.


이 문제를 어떻게 해결할 수 있습니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
좋은 날,
문제를 해결하려면 아래 VBA 코드를 시도하십시오.

개인 하위 Worksheet_Change (범위로 ByVal 대상)
Target.Cells.Count > 1이면 Sub 종료
If (Not Intersect(Target, Range("D7:F7")) Is Nothing) And (Target.Value > 200) then
Mail_small_Text_Outlook에 전화
END IF
최종 하위
하위 Mail_small_Text_Outlook()
개체로 Dim xOutApp
Dim xOutMail을 개체로
Dim xMailBody를 문자열로
xOutApp 설정 = CreateObject("Outlook.Application")
xOutMail = xOutApp.CreateItem(0) 설정
xMailBody = "안녕하세요" & vbNewLine & vbNewLine & _
"이것은 라인 1입니다" & vbNewLine & _
"이것이 2호선입니다"
오류에 대한 다음 재개
xOutMail과 함께
.To = "받는 사람의 이메일 주소"
.CC = ""
.BCC = ""
.Subject = "셀 값 테스트로 보내기"
.Body = xMailBody
.Display '또는 .Send 사용

오류 발생시 0
xOutMail 설정 = 없음
xOutApp = 없음 설정
최종 하위
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
완벽하게 잘 작동했습니다. 감사합니다.. :) :)
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
D7의 값이 공식의 결과이기 때문에 작동하지 않습니다. D7 셀에 수식이 포함되어 있으면(예: D7 =2*120) 어떻게 될까요? 여전히 조건을 충족하지만 아무 일도 일어나지 않습니다. 도와주세요
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
코드 실행을 중지하는 방법, 즉 조건이 충족되지 않을 때 이메일을 표시하지 않는 방법은 무엇입니까?

D7 < 200인 경우에도 여전히 이메일 메시지를 받습니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
좋은 날,
코드는 문제가 해결된 게시물에서 업데이트됩니다. 당신의 의견에 감사드립니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
Hi

이 VBA 코드와 지침을 게시해 주셔서 감사합니다. 그것을 발견했을 때 나는 로또에 당첨된 것처럼 느꼈다. 그러나 나는 당신이 도울 수 있기를 바랍니다.

코드를 복사하고 기준이 충족되면 범위에서 선택하도록 셀과 셀 값을 변경했습니다. 나는 시도하고 테스트했으며 작동하며 기준에 따라 Outlook에 이메일을 받았습니다.

1) 그러나 VBA 응용 프로그램을 클릭하고 실행을 선택하지 않고 Excel 워크시트를 열 때 VBA 코드를 자동으로 실행하는 방법을 알 수 없는 것 같습니다. 위의 VBA 코드에 입력하라는 메시지가 추가로 표시되는지 아니면 별도로 수행해야 하는지 조언해 주시겠습니까?

2) 또한 아래 예와 같이 특정 항목의 마감일이 예인 경우 VBA 코드를 통해 사람에게 메일을 보낼 수 있는 방법이 있습니다.
이메일 숨겨진 열
이름

순서
절차 1번 마감일 예
절차 번호 2 마감일

스프레드시트에 많은 사람들이 있고(가로로 가로질러 가로지르는) 다양한 기한이 지난 절차에 대해 '예'를 강조 표시할 수 있습니다(A 열에 세로로 나열됨). 이와 같이 실행되는 VBA 코드를 만드는 방법이 있습니까? '사람 1'에 대해 '예'인 경우 '절차 번호 #'(또는 숫자) 및 기한을 포함하여 '사람 1'에게 이메일을 보내십시오. 이메일에 모든 절차 및 후속 기한을 나열할 수 있어야 합니다.

그 사람에 대해 연체된 모든 문서와 기한을 메일로 보내는 한 각 사람에 대해 별도의 VBA 코드를 설정해야 해도 상관 없습니다.

당신이 도울 수 있으면 좋겠다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
친애하는 앤,
아래 VBA 코드를 시도하십시오. 당신의 의견에 감사드립니다.

하위 Mail_small_Text_Outlook()
범위로 Dim xRg
xCell을 범위로 흐리게 처리
흐릿한 I As Long
xRows As Long
Dim xCol As Long
Dim xVal을 문자열로
개체로 Dim xOutApp
Dim xOutMail을 개체로
Dim xMailBody를 문자열로
오류에 대한 다음 재개
Set xRg = Application.InputBox("다음을 기반으로 이메일을 보낼 셀 값을 포함하는 범위 선택:", "Kutools for Excel", Selection.Address, , , , , 8)
xRg가 아무것도 없으면 Sub를 종료하십시오.
xRows = xRg.Rows.Count
xCols = xRg.Columns.Count
I = 1에서 xRows까지
xCell = xRg(I, xCols) 설정
xCell.Value = "예"인 경우
xOutApp 설정 = CreateObject("Outlook.Application")
xOutMail = xOutApp.CreateItem(0) 설정
xMailBody = "안녕하세요" & vbNewLine & vbNewLine & _
"이것은 귀하의 정보입니다: " & vbNewLine & xCell.Offset(0, -1).Text & vbNewLine & xCell.Offset(0, -2).Text
xOutMail과 함께
.To = xCell.Offset(0, -4).텍스트
.Subject = "셀 값 테스트로 보내기"
.Body = xMailBody
.Display '또는 .Send 사용

오류 발생시 0
xOutMail 설정 = 없음
xOutApp = 없음 설정
END IF
다음
최종 하위
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
결정,

이것은 다음 코드를 대체합니다.

서브 이메일()

범위로 Dim xRg

범위로 Dim xRgEach

xEmail_Subject, xEmail_Send_Form 등을 어둡게 합니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
이 코드를 정확히 어디에 삽입합니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
좋은 날,
워크시트의 코드 창에 코드를 배치해야 합니다.
Microsoft Visual Basic for Applications 창을 열고 왼쪽 창에서 시트 이름을 두 번 클릭하여 코드 편집기를 엽니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕,


나는 현재 이 코딩에 약간의 문제가 있습니다.


나는 현재 다음이 포함된 스프레드시트를 가지고 있는데, 자동화하고 우리 비즈니스를 위해 우리 자산에 있는 오류에 대해 이메일을 보내는 데 도움이 필요합니다.


현재 다음 데이터를 사용하는 코드가 필요합니다.


1) 주소 및 문제 (((D2 셀에서)) " = =CONCAT(B1," "C1,) "을 통해 병합된 1개의 "일반" 셀
B1의 주소는 항상 동일합니다.
C1은 속성의 결함에 따라 항상 변경됩니다.


2) 동일한 이메일 주소로 보낼 이메일(예: $E$1을 사용하거나 E1 - E1을 사용해야 함) 또는 코드 줄에 "TheEmailAdress@.co.uk"를 입력할 수 있습니다.


3) 1번과 유사한 방식으로 채워질 이메일 본문) ...... ((F1 셀에서)) " =CONCAT(G1," ",H1)
이들은 회사(G1)를 대표하고 그들이 하는 일, 수정, 인용 요법(H1)을 나타내기 때문에 끊임없이 변화할 것입니다.

4) 이메일을 보내는 방아쇠, 나는 숫자 7일 것입니다. 시트는 매일 업데이트됩니다(일주일에 7일)
따라서 7일차에 이메일을 보내기 위한 방아쇠가 필요하지만 8일, 9일, 10일 이상과 같은 것은 아닙니다. 1-6과 같이 이전이 아닌 A4: A 100+에 있습니다.


4) 이메일을 보내기 위해 목록을 사용하는 것에 대해 언급한 다른 사용자의 작은 스니펫을 사용했지만 100% 정확하지는 않지만 모든 A 컬럼을 스캔하려면 필요합니다... A4: A100
"47"만 포함된 7개의 셀이 있는 경우 47개의 이메일이 전송됩니다.


읽어주셔서 정말 감사하고 도움이 되셨으면 좋겠습니다 :)
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
친애하는 마틴,
죄송합니다. 도와드릴 수 없습니다.
포럼에 질문을 게시할 수 있습니다. https://www.extendoffice.com/forum.html 기술 직원으로부터 더 많은 Excel 지원을 받으려면
당신의 의견에 감사드립니다.

최고 감사합니다,
Crystal
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕,


L 열에 추가되는 "완료됨"이라는 단어를 기반으로 전자 메일을 보내려면 어떻게 해야 합니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
친애하는 제시,
다음 VBA 코드는 문제를 해결하는 데 도움이 될 수 있습니다. 당신의 의견에 감사드립니다.

개인 하위 Worksheet_Change (범위로 ByVal 대상)
Target.Cells.Count > 1이면 Sub 종료
If (Not Intersect(Target, Range("L:L")) Is Nothing) And (Target.Value = "completed") then
Mail_small_Text_Outlook에 전화
END IF
최종 하위
하위 Mail_small_Text_Outlook()
개체로 Dim xOutApp
Dim xOutMail을 개체로
Dim xMailBody를 문자열로
xOutApp 설정 = CreateObject("Outlook.Application")
xOutMail = xOutApp.CreateItem(0) 설정
xMailBody = "안녕하세요" & vbNewLine & vbNewLine & _
"이것은 라인 1입니다" & vbNewLine & _
"이것이 2호선입니다"
오류에 대한 다음 재개
xOutMail과 함께
.To = "받는 사람의 이메일 주소"
.CC = ""
.BCC = ""
.Subject = "셀 값 테스트로 보내기"
.Body = xMailBody
.Display '또는 .Send 사용

오류 발생시 0
xOutMail 설정 = 없음
xOutApp = 없음 설정
최종 하위
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕,
범위("D7:F7")에 붙여넣은 데이터에 1 또는 공백이 XNUMX개 이상 있는 경우에만 Outlook이 표시되도록 하고 싶습니다.
'If Target.Cells.Count > 1 Then Exit Sub' 줄을 제거했으며 이제 D7:F7 셀에 값 그룹을 붙여넣을 때 Outlook이 항상 시작됩니다.

도움.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
친애하는 얀,
다음 스크립트는 문제를 해결하는 데 도움이 될 수 있습니다. 당신의 의견에 감사드립니다.

개인 하위 Worksheet_Change (범위로 ByVal 대상)
개체로 Dim xOutApp
Dim xOutMail을 개체로
Dim xMailBody를 문자열로
오류에 대한 다음 재개
Target.Address = Range("D7:F7").Address이면
Application.WorksheetFunction으로
.CountIf(Target, "") > 0 또는 .CountIf(Target, 0) > 0이면
xOutApp 설정 = CreateObject("Outlook.Application")
xOutMail = xOutApp.CreateItem(0) 설정
xOutMail과 함께
.To = "이메일 주소"
.CC = ""
.BCC = ""
.Subject = "셀 값 테스트로 보내기"
.Body = "안녕하세요"
.Display '또는 .Send 사용

오류 발생시 0
xOutMail 설정 = 없음
xOutApp = 없음 설정
END IF

END IF
최종 하위
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
그래서 편집을 사용하여 셀 범위를 포함했지만 (워크시트 예제를 사용하는 경우) 과일의 유형, 날짜 및 수량을 기준에 맞는 경우 워크시트의 HTML 이메일에 추가하는 방법이 궁금합니다. 이메일이 생성되었습니다. 그래서 그것은 말할 것입니다

"안녕하세요,"

셀의 과일 이름 "현재 주문 날짜: " 셀의 주문 날짜 "이 금액이 있습니다:" 셀의 수량 때문에 이월 주문을 해야 합니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요 노에미님
이 VBA 스크립트를 시도하십시오.

개인 하위 Worksheet_Change (범위로 ByVal 대상)
범위로 Dim xRg
Dim I, J, K 길이
개체로 Dim xOutApp
Dim xOutMail을 개체로
Dim xMailBody를 문자열로
오류에 대한 다음 재개
Target.Address = Range("D7").Address이면
Application.WorksheetFunction으로
IsNumeric(Target.Value) 및 Target.Value > 200이면
Set xRg = Application.InputBox("메일 본문에 표시할 셀 범위를 선택하십시오:", "KuTools for Excel", Selection.Address, , , , , 8)
xRg가 아무것도 없으면 Sub를 종료하십시오.
I = 1에서 xRg.Rows.Count까지
J = 1의 경우 xRg.Rows(I).Columns.Count까지
K = 1에서 xRg.Rows(I).Columns(J).Count까지
xMailBody = xMailBody & " " & xRg.Rows(I).Columns(J).Cells(K).Text
다음
다음
xMailBody = xMailBody & vbNewLine
다음
xOutApp 설정 = CreateObject("Outlook.Application")
xOutMail = xOutApp.CreateItem(0) 설정
xOutMail과 함께
.To = "이메일 주소"
.CC = ""
.BCC = ""
.Subject = "셀 값 테스트로 보내기"
.Body = "안녕하세요" & vbNewLine & xMailBody
.Display '또는 .Send 사용

오류 발생시 0
xOutMail 설정 = 없음
xOutApp = 없음 설정
END IF

END IF
최종 하위
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕 크리스탈
귀하의 코드에 감사드립니다. 가능한 경우 아래 주어진 세부 정보에 대한 코드를 보내주십시오.

여권 만료일, 운전 면허증 만료 날짜, 차량 등록 만료 날짜, 게이트 패스 만료 날짜 등과 같이 다른 유형의 만료를 사용하는 8~9개의 열이 있는 경우 메일 알림은 지정된 5명에게만 보내야 합니다.

우리의 날짜 시트가 300명 이상의 직원과 함께 있는 것처럼 만료 및 만료 날짜는 15일 이내에 빨간색으로 표시되고 이메일 알림이 전송되어야 합니다.

친절하게 필요한 일을

사전에 감사합니다
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요
"Excel에서 마감일을 맞추면 어떻게 이메일을 보내나요?"라는 기사를 게시했습니다.
이 기사에 답이 있는지 확인할 수 있습니다. 기사를 열려면 다음 링크를 따르십시오. https://www.extendoffice.com/documents/excel/4664-excel-send-email-if-due-date-has-been-met.html
고맙습니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요- 코드에 실제 이메일 addy를 넣는 대신 목록에서 이메일로 보내고 싶다면 가능합니까? 감사해요
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요
아래 VBA 코드를 시도하십시오. 지정된 셀이 조건을 충족하면 대화 상자가 나타납니다. 이메일을 보낼 이메일 주소가 포함된 셀을 선택하십시오. 도움이 될 수 있기를 바랍니다. 고맙습니다.

개인 하위 Worksheet_Change (범위로 ByVal 대상)
Target.Cells.Count > 1이면 Sub 종료
xRg = Range ( "D7") 설정
xRg = Target 및 Target.Value > 200이면
Mail_small_Text_Outlook에 전화
END IF
최종 하위
하위 Mail_small_Text_Outlook()
개체로 Dim xOutApp
Dim xOutMail을 개체로
Dim xMailBody를 문자열로
Dim xRgMsg As Range
xCell을 범위로 흐리게 처리
Set xRgMsg = Application.InputBox("주소 셀을 선택하십시오:", "Kutools for Excel", , , , , , 8)
xMailBody = "안녕하세요" & vbNewLine & vbNewLine & _
"이것은 라인 1입니다" & vbNewLine & _
"이것이 2호선입니다"
오류에 대한 다음 재개
xRgMsg의 각 xCell에 대해
xOutApp 설정 = CreateObject("Outlook.Application")
xOutMail = xOutApp.CreateItem(0) 설정
xOutMail과 함께
.To = x셀.값
.CC = ""
.BCC = ""
.Subject = "셀 값 테스트로 보내기"
.Body = xMailBody
.Display '또는 .Send 사용

xOutApp = 없음
xOutMail = 없음
다음
오류 발생시 0
최종 하위
아직 코멘트가 없습니다
더보기
여러분의 의견을 남겨
게스트로 게시
×
이 게시물 평가 :
0   등장 인물
추천 위치

Follow Us

저작권 © 2009 - WWW.extendoffice.com. | 판권 소유. 에 의해 구동 ExtendOffice. | | 사이트 맵
Microsoft 및 Office 로고는 미국 및 / 또는 기타 국가에서 Microsoft Corporation의 상표 또는 등록 상표입니다.
Sectigo SSL로 보호