HTML 엑셀 매크로 에러 및 빈셀 처리 문의

VBA
작성자
songa
작성일
2023-11-22 16:54
조회
1208
엑셀버전 : 엑셀2021

운영체제 : 윈도우10

질문 요약 : HTML 엑셀 매크로 에러 및 빈셀 처리 문의

매크로 문의 합니다.
구매가능여부를 TRUE,FALSE로 구분되어 매크로를 진행하였으나
판매여부 및 오류가 뜨는데
오류가 난것은 무시하고 바로 다음으로 넘어가지 않습니다.
초보인데
      'On Error Resume Next ' 에러무시
어느 부분에 넣어야 하는지 자세한 설명 부탁드려요.

Sub Automate()
Dim sht As Worksheet
Dim lastRow As Long
Dim r As Range

Set sht = ActiveSheet
lastRow = sht.Cells(Rows.Count, "A").End(xlUp).Row
If lastRow < 2 Then Exit Sub

For Each r In sht.Range("A2:A" & lastRow)

r.Offset(, 1).Resize(, 10).ClearContents
Call getDM(r)

Next r

End Sub

Function getDM(url As Range)

Dim Json As Dictionary 'Object
Dim jValue As Dictionary, v As Variant
Dim i As Integer

'Json 파싱
Set Json = JsonConverter.ParseJson(getHtml(url.Text))
'데이터 출력
url.Offset(, 1) = Json("purchasable")

url.Offset(, 2) = Json("priceLocalized")

End Function

Function getHtml(str As String) As String

Dim http As Object 'New MSXML2.XMLHTTP
Set http = CreateObject("MSXML2.serverXMLHTTP")

'접속
With http
.Open "get", str, False
'.setRequestHeader "accept", "text/html,application/xhtml+xml,application/xml"
.setRequestHeader "user-agent", "Mozilla/5.0"
.send
If Left(.responseText, 1) = "[" Then
getHtml = Mid(.responseText, 2, Len(.responseText) - 2)

Else
getHtml = .responseText
End If
'Debug.Print getHtml
'On Error Resume Next ' 에러무시
End With
If Not http Is Nothing Then Set http = Nothing

End Function

Function ENCODEURL(varText As Variant, Optional blnEncode = True)
Static objHtmlfile As Object
If objHtmlfile Is Nothing Then
Set objHtmlfile = CreateObject("htmlfile")
With objHtmlfile.parentWindow
.execScript "function encode(s) {return encodeURIComponent(s)}", "jscript"
End With
End If
If blnEncode Then
ENCODEURL = objHtmlfile.parentWindow.encode(varText)
End If
End Function

지*인 물어보니
답변이 에러가 발생해도 무시하고 다음 코드를 실행하라는 의미인데 권장하지 않습니다.

구매가능여부 확인 코드에서 Json(“purchasable”)의 값이 True 또는 False인지 확인하지 않고 있네요. If 문으로 구매가능여부가 True일 때만 가격을 가져오도록 수정하시고, 또 가격을 가져오는 코드에서 Json(“priceLocalized”)의 값이 존재하는지 확인하지 않고 있어요. 가격이 없는 상품이면 오류가 생길 수 있어서, IsEmpty 함수로 가격이 있는지 확인하고, 없다면 "가격미정" 같은 텍스트가 출력되도록 해 보세요

--당최 무슨말인지 모르겠습니다.

신고
스크랩
공유
회원등급 : 3레벨
포인트 : 96 EP
총질문 : 3 개 (마감율 : 33%)
채택답변 : 0 개
전체 2

  • 2023-11-22 17:35
    채택된 답변

    @songa 님 getHTML이 빈문자열을 반환할 경우 오류이므로 아래와 같이 수정해 보세요.

    Function getDM(url As Range)
     
        Dim Json As Dictionary  'Object
        Dim jValue As Dictionary, v As Variant
    <span style="color: #ff0000;">    Dim urlText As String  '// getHTML결과 저장용</span>
        Dim i As Integer
     
        'Json 파싱
    <span style="color: #ff0000;">    urlText = getHtml(url.Text)
        If urlText = "" Then '// 결과가 ""일 때 처리
            url.Offset(, 1) = "N/A"
            url.Offset(, 2) = "N/A"
        Else</span>
          Set Json = JsonConverter.ParseJson(<span style="color: #ff0000;">urlText</span>)
          '데이터 출력
          url.Offset(, 1) = Json("purchasable")
          url.Offset(, 2) = Json("priceLocalized")
    <span style="color: #ff0000;">    End If</span>
    End Function

     

    첨부파일 : getDM1.xlsm


  • 2023-11-22 16:58

    @songa

    여기에 넣어보세요~ 다~만 답변 내용처럼 resume next는 모든 오류를 패싱하기 때문에..

    웬만하면 on error goto 로 오류 번호마다 처리하는게 좋습니다~만~

    그냥 보통은 resume next로 대충 쓰다가 잘 안되면 그때그때 수정해서 쓰는게 속편합니다


전체 18,532
번호 카테고리 제목 작성자 작성일 추천 조회
알림
[📚진짜쓰는 실무엑셀] IT/오피스 '1위' 베스트셀러! 엑셀 공부, 이 교재로 마스터하세요! (315)
오빠두엑셀 | 2022.02.03 | 추천 575 | 조회 609699
오빠두엑셀 2022.02.03 575 609699
공지사항 문서서식
⭐ [더 나은 커뮤니티 문화를 위한 Q&A 글 작성 규칙] ⭐ (197)
오빠두엑셀 | 2021.10.28 | 추천 310 | 조회 35541
오빠두엑셀 2021.10.28 310 35541
78582 함수/공식
New 조건 함수 의 관한 문의 엑셀파일첨부파일 (4) 답변완료
예쁜나야 | 15:46 | 추천 0 | 조회 35
예쁜나야 15:46 - 35
78580
New 날짜와 시간 분할 방법 알려 주세요 엑셀파일첨부파일 (1)
계양산 지기 | 15:14 | 추천 0 | 조회 25
계양산 지기 15:14 - 25
78575 VBA
New 엑셀 재고관리 프로그램 문의드립니다.. 첨부파일 (1)
SJ | 04:23 | 추천 0 | 조회 65
SJ 04:23 - 65
78570 대시보드
New 대시보드에 표 형식으로 표현도 가능한가요? 첨부파일 (2)
룰루랄라 | 2025.05.12 | 추천 0 | 조회 66
룰루랄라 2025.05.12 - 66
78569 함수/공식
New 서로 다른 양식의 견적서 엑셀 파일 한곳에 정리 하기 (5)
gh**** | 2025.05.12 | 추천 0 | 조회 95
gh**** 2025.05.12 - 95
78565 함수/공식
New 검색보고서 만들기 질문드립니다. 엑셀파일 (9) 답변완료
만식이햄 | 2025.05.12 | 추천 0 | 조회 82
만식이햄 2025.05.12 - 82
78563 VBA
New VBA 수정 부탁드립니다. ㅠ (3)
서비 | 2025.05.12 | 추천 0 | 조회 73
서비 2025.05.12 - 73
78560 함수/공식
New 어떻게 내용을 가져올수 있을지 고수님들의 해결방법들을 공유 받고 싶습니다!!.... 엑셀파일첨부파일 (2)
꾸르형 | 2025.05.12 | 추천 0 | 조회 43
꾸르형 2025.05.12 - 43
78559 파워쿼리/피벗
New 엑셀 자동화 질문 입니다... 엑셀파일 (2) 답변완료
안녕하세여11 | 2025.05.12 | 추천 0 | 조회 65
안녕하세여11 2025.05.12 - 65
78555 함수/공식
New 시트에서 원하는 열의 자료만 가져오고싶은데 아무리 해도 수식오류가 나서 도움을 구하고자 합니다 엑셀파일 (4) 답변완료
khs**** | 2025.05.12 | 추천 0 | 조회 41
khs**** 2025.05.12 - 41
78554 함수/공식
New 변동하는 절대참조값 적용 (6) 답변완료
화이또! | 2025.05.12 | 추천 0 | 조회 64
화이또! 2025.05.12 - 64
78553 대시보드
New 대시보드_슬라이서 자동으로 눌러지게 하는방법 첨부파일 (1)
검도림 | 2025.05.12 | 추천 0 | 조회 46
검도림 2025.05.12 - 46
78548 대시보드
New 어떤 엑셀을 적용해야하는 지 문의드립니다! (1)
룰루랄라 | 2025.05.11 | 추천 0 | 조회 64
룰루랄라 2025.05.11 - 64
78546 함수/공식
New 월별 매출액 자동입력할 수 있는 방법 또는 함수 궁금합니다! 엑셀파일 (2)
mmm1010 | 2025.05.11 | 추천 0 | 조회 84
mmm1010 2025.05.11 - 84
78544 함수/공식
New 중복값 제거 함수에 관하여 엑셀파일첨부파일 (1) 답변완료
김지훈(Derek) | 2025.05.11 | 추천 0 | 조회 74
김지훈(Derek) 2025.05.11 - 74
78543 함수/공식
New 데이터 추출 및 정렬관련 초보질문 엑셀파일첨부파일 (5) 답변완료
김지훈(Derek) | 2025.05.11 | 추천 0 | 조회 67
김지훈(Derek) 2025.05.11 - 67
78540 함수/공식
New 오빠두LIVE 219회 - 엑셀 '셀 병합' 자동화 보고서 만들기 오빠두엑셀님의 방법이 궁금합니다. 첨부파일
AURIC | 2025.05.10 | 추천 0 | 조회 57
AURIC 2025.05.10 - 57
78536 함수/공식
New 월별로 금액적용후 최종월에 차액을 가감 함수가 필요해요 엑셀파일 (1) 답변완료
낮은자 | 2025.05.10 | 추천 0 | 조회 62
낮은자 2025.05.10 - 62
78535 기능/도구
New 엑셀로 25x25 인쇄가 가능한가요? (1)
망나 | 2025.05.10 | 추천 0 | 조회 47
망나 2025.05.10 - 47
78534 파워쿼리/피벗
New 쿼리에 함수 적용한 열 추가 시 24:00:00 활용한 계산 함수 필요할 때. 첨부파일 (2) 답변완료
신노스케 | 2025.05.10 | 추천 0 | 조회 61
신노스케 2025.05.10 - 61
78531 차트/그래프
New 엑셀 차트 데이터테이블 엑셀파일첨부파일 (1)
| 2025.05.09 | 추천 0 | 조회 72
2025.05.09 - 72
78530 구글시트
New 구글 스프레드시트 함수 관련 질문입니다. 엑셀파일첨부파일 (2)
동그이 | 2025.05.09 | 추천 0 | 조회 61
동그이 2025.05.09 - 61
78528 구글시트
New 구글 스프레드시트를 외부 엑셀 파일과 연동하는 방법이 궁금합니다. (3)
머우터덩 | 2025.05.09 | 추천 0 | 조회 65
머우터덩 2025.05.09 - 65
78525 문서서식
New 업무가 진행이 안 될 정도로, 해당 파일이 느립니다! 엑셀파일 (2)
빌스택스 | 2025.05.09 | 추천 0 | 조회 89
빌스택스 2025.05.09 - 89
78520 기능/도구
New 하이퍼링크 명칭 해제 (1)
min | 2025.05.09 | 추천 0 | 조회 49
min 2025.05.09 - 49
78518 피벗테이블
New 피벗테이블 관련 화살표 질문 첨부파일
이모비니 | 2025.05.09 | 추천 0 | 조회 47
이모비니 2025.05.09 - 47
78516 함수/공식
New 호봉산정 엑셀 문의드립니다. 엑셀파일첨부파일 (2) 답변완료
아르카디안 | 2025.05.08 | 추천 0 | 조회 55
아르카디안 2025.05.08 - 55
78515 함수/공식
New 엑셀 질문 드립니다.ㅠ.ㅠ 첨부파일 (1)
숲의사제 | 2025.05.08 | 추천 0 | 조회 51
숲의사제 2025.05.08 - 51
78511 함수/공식
New 입사일자로 부터 매년 알림 (2)
국빱 | 2025.05.08 | 추천 0 | 조회 66
국빱 2025.05.08 - 66
78510 문서서식
New 조건부 서식 적용 문의 엑셀파일첨부파일 (2) 답변완료
장수벌레 | 2025.05.08 | 추천 0 | 조회 99
장수벌레 2025.05.08 - 99