HTML 엑셀 매크로 에러 및 빈셀 처리 문의
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 함수로 가격이 있는지 확인하고, 없다면 "가격미정" 같은 텍스트가 출력되도록 해 보세요
--당최 무슨말인지 모르겠습니다.
번호 | 카테고리 | 제목 | 작성자 | 작성일 | 추천 | 조회 |
[📚진짜쓰는 실무엑셀] IT/오피스 '1위' 베스트셀러! 엑셀 공부, 이 교재로 마스터하세요! (315)
![]() ![]() |
![]() ![]() |
2022.02.03 | 575 | 609699 | ||
공지사항 | 문서서식 |
⭐ [더 나은 커뮤니티 문화를 위한 Q&A 글 작성 규칙] ⭐
(197)
오빠두엑셀
|
2021.10.28
|
추천 310
|
조회 35541
|
![]() ![]() |
2021.10.28 | 310 | 35541 |
78582 | 함수/공식 |
New 조건 함수 의 관한 문의
![]() ![]() ![]() |
![]() |
15:46 | - | 35 |
78580 |
New 날짜와 시간 분할 방법 알려 주세요
![]() ![]() ![]() |
![]() |
15:14 | - | 25 | |
78575 | VBA |
New 엑셀 재고관리 프로그램 문의드립니다..
![]() ![]() |
![]() |
04:23 | - | 65 |
78570 | 대시보드 |
New 대시보드에 표 형식으로 표현도 가능한가요?
![]() ![]() |
![]() |
2025.05.12 | - | 66 |
78569 | 함수/공식 |
New 서로 다른 양식의 견적서 엑셀 파일 한곳에 정리 하기
(5)
![]() |
![]() |
2025.05.12 | - | 95 |
78565 | 함수/공식 |
New 검색보고서 만들기 질문드립니다.
![]() ![]() |
![]() |
2025.05.12 | - | 82 |
78563 | VBA |
New VBA 수정 부탁드립니다. ㅠ
(3)
![]() |
![]() |
2025.05.12 | - | 73 |
78560 | 함수/공식 |
New 어떻게 내용을 가져올수 있을지 고수님들의 해결방법들을 공유 받고 싶습니다!!....
![]() ![]() ![]() |
![]() |
2025.05.12 | - | 43 |
78559 | 파워쿼리/피벗 |
New 엑셀 자동화 질문 입니다...
![]() ![]() |
![]() |
2025.05.12 | - | 65 |
78555 | 함수/공식 |
New 시트에서 원하는 열의 자료만 가져오고싶은데 아무리 해도 수식오류가 나서 도움을 구하고자 합니다
![]() ![]() |
![]() |
2025.05.12 | - | 41 |
78554 | 함수/공식 |
New 변동하는 절대참조값 적용
(6)
답변완료
![]() |
![]() |
2025.05.12 | - | 64 |
78553 | 대시보드 |
New 대시보드_슬라이서 자동으로 눌러지게 하는방법
![]() ![]() |
![]() |
2025.05.12 | - | 46 |
78548 | 대시보드 |
New 어떤 엑셀을 적용해야하는 지 문의드립니다!
(1)
![]() |
![]() |
2025.05.11 | - | 64 |
78546 | 함수/공식 |
New 월별 매출액 자동입력할 수 있는 방법 또는 함수 궁금합니다!
![]() ![]() |
![]() |
2025.05.11 | - | 84 |
78544 | 함수/공식 |
New 중복값 제거 함수에 관하여
![]() ![]() ![]() |
![]() |
2025.05.11 | - | 74 |
78543 | 함수/공식 |
New 데이터 추출 및 정렬관련 초보질문
![]() ![]() ![]() |
![]() |
2025.05.11 | - | 67 |
78540 | 함수/공식 |
New 오빠두LIVE 219회 - 엑셀 '셀 병합' 자동화 보고서 만들기 오빠두엑셀님의 방법이 궁금합니다.
![]() ![]() |
![]() |
2025.05.10 | - | 57 |
78536 | 함수/공식 |
New 월별로 금액적용후 최종월에 차액을 가감 함수가 필요해요
![]() ![]() |
![]() |
2025.05.10 | - | 62 |
78535 | 기능/도구 |
New 엑셀로 25x25 인쇄가 가능한가요?
(1)
![]() |
![]() |
2025.05.10 | - | 47 |
78534 | 파워쿼리/피벗 |
New 쿼리에 함수 적용한 열 추가 시 24:00:00 활용한 계산 함수 필요할 때.
![]() ![]() |
![]() |
2025.05.10 | - | 61 |
78531 | 차트/그래프 |
New 엑셀 차트 데이터테이블
![]() ![]() ![]() |
![]() |
2025.05.09 | - | 72 |
78530 | 구글시트 |
New 구글 스프레드시트 함수 관련 질문입니다.
![]() ![]() ![]() |
![]() |
2025.05.09 | - | 61 |
78528 | 구글시트 |
New 구글 스프레드시트를 외부 엑셀 파일과 연동하는 방법이 궁금합니다.
(3)
![]() |
![]() |
2025.05.09 | - | 65 |
78525 | 문서서식 |
New 업무가 진행이 안 될 정도로, 해당 파일이 느립니다!
![]() ![]() |
![]() |
2025.05.09 | - | 89 |
78520 | 기능/도구 |
New 하이퍼링크 명칭 해제
(1)
![]() |
![]() |
2025.05.09 | - | 49 |
78518 | 피벗테이블 |
New 피벗테이블 관련 화살표 질문
![]() ![]() |
![]() |
2025.05.09 | - | 47 |
78516 | 함수/공식 |
New 호봉산정 엑셀 문의드립니다.
![]() ![]() ![]() |
![]() |
2025.05.08 | - | 55 |
78515 | 함수/공식 |
New 엑셀 질문 드립니다.ㅠ.ㅠ
![]() ![]() |
![]() |
2025.05.08 | - | 51 |
78511 | 함수/공식 |
New 입사일자로 부터 매년 알림
(2)
![]() |
![]() |
2025.05.08 | - | 66 |
78510 | 문서서식 |
New 조건부 서식 적용 문의
![]() ![]() ![]() |
![]() |
2025.05.08 | - | 99 |
@songa 님 getHTML이 빈문자열을 반환할 경우 오류이므로 아래와 같이 수정해 보세요.
첨부파일 : getDM1.xlsm
@songa 님
여기에 넣어보세요~ 다~만 답변 내용처럼 resume next는 모든 오류를 패싱하기 때문에..
웬만하면 on error goto 로 오류 번호마다 처리하는게 좋습니다~만~
그냥 보통은 resume next로 대충 쓰다가 잘 안되면 그때그때 수정해서 쓰는게 속편합니다