
4번 6번이 이해가 잘 되지 않아 어찌저찌 제출했지만 다시 반려될까봐 이곳에 추가로 남깁니다.

작성한 코드 및 에러 메세지
1.VBA 매크로 코드
Sub 추출하고_저장하기()
Dim 원본시트 As Worksheet
Dim 새로운시트 As Worksheet
Dim 원본행 As Range
Dim 새로운행 As Range
Dim 이름 As String
Dim 역할 As String
Dim 이메일 As String
' 원본 시트 선택
Set 원본시트 = Worksheets("Sheet") ' 시트 이름은 실제로 사용하는 시트 이름으로 변경해주세요
' 새로운 시트 생성
Set 새로운시트 = Worksheets.Add
' 헤더 복사
원본시트.Rows(1).Copy Destination:=새로운시트.Rows(1)
' 데이터 추출 및 새로운 시트에 추가
For Each 원본행 In 원본시트.Rows
' 첫 번째 행은 헤더이므로 무시
If 원본행.Row > 1 Then
이름 = 원본행.Cells(1).Value
역할 = 원본행.Cells(2).Value
이메일 = 원본행.Cells(3).Value
' 역할이 "마케팅"인 경우만 추출
If 역할 = "마케팅" Then
' 마케팅만 한국어로 변환하여 새로운 시트에 추가
Set 새로운행 = 새로운시트.Rows(새로운시트.UsedRange.Rows.Count + 1)
새로운행.Cells(1).Value = 이름
새로운행.Cells(2).Value = "마케팅"
새로운행.Cells(3).Value = 이메일
End If
End If
Next 원본행
' 새로운 시트 저장
새로운시트.Copy
ActiveWorkbook.SaveAs Filename:="marketing_data.xlsx" ' 저장할 파일 이름 및 경로를 적절히 변경해주세요
ActiveWorkbook.Close SaveChanges:=False
End Sub
=======================
2.자동화 메일 코드
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
# 이메일 계정 설정
email_address = 'evedesign.j@gmail.com' # 여기에 본인의 이메일 주소 입력
email_password = 'pvxz qhfm xuau yeng' # 여기에 본인의 이메일 비밀번호 입력
# SMTP 서버 설정 (Gmail 기준)
smtp_server = 'smtp.gmail.com'
smtp_port = 587
# 이메일 제목과 내용 설정
subject = '마케팅 이벤트 협조 요청'
message_body = '''
안녕하세요, {name}님!
저희 마케팅 부서에서는 새로운 이벤트를 기획 중에 있습니다.
고객님의 참여가 매우 중요하며, 아래와 같은 내용을 협조 부탁드립니다.
이벤트 내용:
- 전자책 1부 구입 시 10% 할인
- 구매 금액의 2% 포인트 적립
이와 관련하여 다양한 홍보 방법을 고민 중이오니, 부서 내에서 아이디어를 나누고 적극적인 협조 부탁드립니다.
감사합니다.
기획총괄사업부 담당자 정지희 드림
'''
# 엑셀 파일 읽기
marketing_workbook = openpyxl.load_workbook('marketing_data.xlsx')
marketing_sheet = marketing_workbook['Sheet']
# 이메일 보내기
for row in marketing_sheet.iter_rows(min_row=2, values_only=True):
name, _, email = row
# 이메일 내용에 이름 삽입
formatted_message = message_body.format(name=name)
# 이메일 설정
msg = MIMEMultipart()
msg['From'] = email_address
msg['To'] = email
msg['Subject'] = subject
msg.attach(MIMEText(formatted_message, 'plain'))
# SMTP 서버 연결 및 로그인
with smtplib.SMTP(smtp_server, smtp_port) as server:
server.starttls()
server.login(email_address, email_password)
# 이메일 전송
server.sendmail(email_address, email, msg.as_string())
# 엑셀 파일 닫기
marketing_workbook.close()
