A파일의 ㄱsheet 내용을 B파일의 ㄴsheet에 불러오기

VBA
작성자
DAN
작성일
2020-11-13 10:22
조회
496

 

안녕하세요, 강의 잘 보고 있습니다 🙂

 

A라는 파일의 ㄱsheet의 내용을 B파일로 불러오고 싶습니다.

이때 A파일에서 내용이 업데이트가 되면 B파일에도 업데이트 된 내용이 들어오면 좋겠는데

그냥 수식으로 = 이렇게 가져오는건 업데이트가 잘 안되는 것 같더라구요ㅠㅠ

 

가능한 방법이 있을까요?

vba나 수식 모두 방법만 있으면 좋을 것 같습니다.

관련 내용에 대한 강의가 있으면 알려주시길 부탁드립니다.

 

감사합니다.

회원등급 : 5레벨
포인트 : 332 EP
총질문 : 5 개 (마감율 : 60%)
채택답변 : 0 개
전체 4

  • 2020-11-13 19:57

    @DAN 님 VBA로 닫혀있는 파일의 값을 가져오는건 adodb 라이브러리를 사용하시면 됩니다.

    아래 게시글을 참고해보세요

    https://www.oppadu.com/question/?mod=document&pageid=1&keyword=ado&uid=6208

    닫혀있는 파일의 값을 수식으로 가져오는 방법은 없습니다. 반드시 등호로 시작하여 특정 셀을 지정해주셔야 하는데요.

    등호로 특정 셀을 참조할 경우에는 '파일이 저장'이 된 이후에 값이 업데이트 되는 문제가 아닐까 예상됩니다.^^ 따라서 업데이트 전 파일을 저장해주면 문제가 해결될 것으로 생각됩니다.

    답변이 도움이 되셨길 바랍니다. 감사합니다.


  • 2020-11-15 03:21

    @DAN 님 PC에 설치된 라이브러리 버전 등 환경에 따라
    ADO 가 (글처럼, 말처럼) 쉽게 해결될 때도 그렇지 않을 때도 있습니다.

    질문자님의 예제 파일은
    구 버전 엑셀파일에 헤더가 통합된 형태라서 몇 번의 시행착오를 해야만 할 듯 싶네요..

    우선, 제시해 준 파일을
    다른 이름 저장으로해서 OBJECT 를 최신화 합니다.
    xls 가 xlsx 로 확장자가 변화되지요.

     

    첨부파일 : 자료임시.xlsx


  • 2020-11-15 03:23

    @DAN 님 Sub 메인()
    Call 시트정리("T1")
    Call 다른엑셀파일읽어오기(1)
    Call 데이터컬럼처리(1) '// 목적에 따라 처리하세요~
    Cells(1, 1).Select

    End Sub

    Sub 시트정리(cSrcName As String)
    Sheets(cSrcName).Select
    Cells.Select
    Selection.ClearContents
    End Sub

    Sub 데이터컬럼처리(iDummy As Integer)

    End Sub

    Sub 다른엑셀파일읽어오기(iDummy As Integer)

    Dim oDbCon As Object
    Dim oRS As Object
    Dim cDBPath As String
    Dim strCon As String
    Dim cSQL As String
    Dim cRunMode As String
    Dim oWS As Worksheet
    Dim cTarName As String

    Dim iStartRow As Long '// 출력 y 좌표
    Dim iStartCol As Long '// 출력 x 좌표
    Dim iLoop As Integer
    Dim iCount As Integer
    Dim cHeader(30) As String
    Dim iRow As Long
    Dim iCol As Long

    Set oDbCon = CreateObject("ADODB.Connection")
    Set oRS = CreateObject("ADODB.Recordset")

    cRunMode = "ONE_SHOT"
    cTarName = "T1"
    iStartRow = 1
    iStartCol = 1

    '////////////////////////////////////////////////////////////////////////////
    '///// 엑셀 버전에 따른 공급자를 찾는 것이 쉽지가 않네요
    '///// 현재 버전으로 파일을 reSave 하고 나면 오류가 해결되는데...
    '/////
    '////////////////////////////////////////////////////////////////////////////

    cDBPath = ThisWorkbook.Path & "\자료임시.xlsX" '////////////////////////////////////////// 파일명 수정하세요
    strCon = "Provider=MSDASQL.1;DSN=Excel Files;DBQ=" & cDBPath & ";HDR=Yes';"

    oDbCon.Open strCon

    cSQL = "SELECT T.* From [10RN$] as T " '////////////////////////////////////////// 데이터가 있는 시트명 // 뒤에 $ 필수 입니다.
    Set oRS = oDbCon.Execute(cSQL)

    Select Case cRunMode

    Case "ONE_SHOT"
    '////////////////////////////////////////////////////////////////////////////
    '///// 헤더가 병합된 형태일 경우, 처리 함
    '////////////////////////////////////////////////////////////////////////////
    Sheets(cTarName).Range("A1").CopyFromRecordset oRS

    Call SetHeader(cHeader) '// 헤더 설정

    '////////////////////////////////////////////////////////////////////////////
    '///// 헤더 리픽싱
    '////////////////////////////////////////////////////////////////////////////

    iRow = ActiveSheet.UsedRange.Rows.Count
    iCol = ActiveSheet.UsedRange.Columns.Count

    Range(Cells(2, 1), Cells(3, iCol)).Select
    Selection.EntireRow.Delete

    For iLoop = 1 To iCol
    Cells(1, iLoop).Value = cHeader(iLoop)
    Next

    End Select

    oRS.Close
    oDbCon.Close

    End Sub

    Sub SetHeader(cHeader() As String)

    cHeader(1) = "번호"
    cHeader(2) = "BarCode"
    cHeader(3) = "Spec"
    cHeader(4) = "전압"
    cHeader(5) = "전류"
    cHeader(6) = "시험시간"
    cHeader(7) = "개폐회수"
    cHeader(8) = "아크시간"
    cHeader(9) = "AC합부판정"
    cHeader(10) = "DC합부판정"

    cHeader(11) = "저항_기준값"
    cHeader(12) = "저항_전류"
    cHeader(13) = "저항_접점전압"
    cHeader(14) = "내압시험_단자-단자"
    cHeader(15) = "내압시헙_단자-코일"
    cHeader(16) = "내압시헙_단자-케이스"
    cHeader(17) = "동작시간_ON"
    cHeader(18) = "동작시간_OFF"
    cHeader(19) = "여자전류_"
    cHeader(20) = "여자전류_값"

    cHeader(21) = "석방전압_"
    cHeader(22) = "석방전압_값"
    cHeader(23) = "흡인전압_"
    cHeader(24) = "흡인전압_값"
    cHeader(25) = "절연저항시험"
    cHeader(26) = "시험시간"
    End Sub


  • 2020-11-15 03:25

    @DAN 님 첨부를 위의 파일과 같은 폴더에 저장하고
    매크로 코드를 확인해 보세요.

    첨부파일 : 엑셀ODBC메인.xlsm


전체 7,355
번호 카테고리 제목 작성자 작성일 추천 조회
알림
[🏆 VBA 4주 완성 특별 스터디] 1기 - 우수 졸업생 및 후기, 축하합니다! (6)
오빠두엑셀 | 2022.07.31 | 추천 8 | 조회 1244
오빠두엑셀 2022.07.31 8 1244
공지사항 함수/공식
[신규 기능 업데이트!] 👉 이제 게시글 작성시 스크린샷 복/붙이 가능합니다! 😎 (2)
오빠두엑셀 | 2022.08.04 | 추천 4 | 조회 108
오빠두엑셀 2022.08.04 4 108
공지사항 함수/공식
⭐ [더 나은 커뮤니티 문화를 위한 Q&A 글 작성 규칙] ⭐ (88)
오빠두엑셀 | 2021.10.28 | 추천 117 | 조회 6200
오빠두엑셀 2021.10.28 117 6200
41174 함수/공식
New 엑셀 다른시트에서 날짜에 맞춰서 값 불러오기 수식을 어떻게 짜야할지 모르겠어요. 첨부파일 (6)
민호 | 15:37 | 추천 0 | 조회 28
민호 15:37 - 28
41173 함수/공식
New 오빠두에서 제공하는 견적서에 외화를 추가하고 싶습니다. (1)
농푸 | 15:36 | 추천 0 | 조회 16
농푸 15:36 - 16
41170 문서서식
New (초보질문)채우기 색만 복사 붙여넣기 하는 방법 좀 알려주세요~ 엑셀파일첨부파일 (4) 답변완료
추바카 | 12:57 | 추천 0 | 조회 29
추바카 12:57 - 29
41167 기능/도구
New 고급필터 결과값 셀에 형식을 주려면 어떻게 해야 할까요? (1)
| 06:38 | 추천 0 | 조회 24
06:38 - 24
41162 VBA
New 달력 유저폼에서 유저폼 X 하면 현재 날짜 변경 없으면 합니다. 엑셀파일첨부파일 (1) 답변완료
033cola | 2022.08.13 | 추천 0 | 조회 35
033cola 2022.08.13 - 35
41159 함수/공식
New 해당 조건 개수찾기 Max 함수 예제 엑셀파일 (1)
Kim Si Yoon | 2022.08.13 | 추천 0 | 조회 26
Kim Si Yoon 2022.08.13 - 26
41148 VBA
New 셀에서 특정 위치에 있는 문자의 색상을 변경하는 방법 첨부파일 (2) 답변완료
:+:하늘비:+: | 2022.08.13 | 추천 0 | 조회 47
:+:하늘비:+: 2022.08.13 - 47
41147 문서서식
New 엑셀에서 픽셀에 의미에 대해서 질문드립니다. 첨부파일 (5) 답변완료
월마리아 | 2022.08.13 | 추천 0 | 조회 48
월마리아 2022.08.13 - 48
41145 함수/공식
New 이런 경우는 어떻게 해야할까요? 첨부파일 (3) 답변완료
Utaeks | 2022.08.13 | 추천 1 | 조회 45
Utaeks 2022.08.13 1 45
41141 함수/공식
New 어떤 함수를 써야할까요? 첨부파일 (4)
머지않아VBA고수 | 2022.08.13 | 추천 0 | 조회 46
머지않아VBA고수 2022.08.13 - 46
41140 VBA
New 매크로 파일 저장방법이 따로 있나요?파일목록이 추가될때마다 저장확인창이 하나씩 늘어나요ㅠㅠ 첨부파일 (1)
pjc**** | 2022.08.13 | 추천 0 | 조회 22
pjc**** 2022.08.13 - 22
41132 함수/공식
New 함수를 간단히 할 수 있을까요? 엑셀파일 (3)
안동근 | 2022.08.12 | 추천 0 | 조회 46
안동근 2022.08.12 - 46
41129 기능/도구
New 빠른 실행 도구 모음에서 명령 레이블 표시 또는 숨기기 첨부파일 (9) 답변완료
fabikim | 2022.08.12 | 추천 0 | 조회 44
fabikim 2022.08.12 - 44
41126 VBA
New VBA 자동화 용어 및 규칙 등의 작동원리 해석 문의 엑셀파일 (2) 답변완료
pjc**** | 2022.08.12 | 추천 0 | 조회 49
pjc**** 2022.08.12 - 49
41123 함수/공식
New 어떤 함수가 입력된건지 알고싶어요.(함수가 가려져 있는건지 여부도 알고싶네요) 첨부파일 (2) 답변완료
일개회사원 | 2022.08.12 | 추천 0 | 조회 44
일개회사원 2022.08.12 - 44
41117 피벗테이블
New 데이터 모델 관련 오류인데 어떤 오류인지 도저히 모르겠습니다ㅠ 첨부파일 (2) 답변완료
ㅎㅎ | 2022.08.12 | 추천 0 | 조회 39
ㅎㅎ 2022.08.12 - 39
41116 피벗테이블
New 피벗테이블 슬라이서 문의 첨부파일 (1)
조동호 | 2022.08.12 | 추천 0 | 조회 31
조동호 2022.08.12 - 31
41114 함수/공식
New Lookup 함수사용시 출력되는 날짜의 형식오류 첨부파일 (3)
조민양 | 2022.08.12 | 추천 0 | 조회 31
조민양 2022.08.12 - 31
41112 피벗테이블
New 엑셀 피벗테이블 필터부분을 가리는 방법을 알고 싶습니다! 첨부파일 (3)
이재호 | 2022.08.12 | 추천 0 | 조회 29
이재호 2022.08.12 - 29
41107 함수/공식
New 중첩 이프 함수 해결 방법 / 중첩 if 해결 방법 / 다중조건 첨부파일 (2) 답변완료
떡상가즈아 | 2022.08.12 | 추천 0 | 조회 40
떡상가즈아 2022.08.12 - 40
41106 함수/공식
New 2X2 엑셀 값 비교하는 함수가 가능할까요? 첨부파일 (1)
클루 | 2022.08.12 | 추천 0 | 조회 38
클루 2022.08.12 - 38
41099 파워쿼리/피벗
New 여러개의 데이터 파일(같은 양식)을 데이터연결하여 하나의 파일로 관리(주기 관리)하는 방법 엑셀파일 (4) 답변완료
pjc**** | 2022.08.12 | 추천 -1 | 조회 67
pjc**** 2022.08.12 -1 67
41096 피벗테이블
New 피벗테이블 날짜 슬라이서 제작시 오류 첨부파일 (4)
naver_616841992e55a | 2022.08.12 | 추천 0 | 조회 37
naver_616841992e55a 2022.08.12 - 37
41095 VBA
New 매크로 관련 질문이예요. 도움 부탁드립니다. (3)
AANNNDDDYY | 2022.08.12 | 추천 0 | 조회 47
AANNNDDDYY 2022.08.12 - 47
41094 함수/공식
New 수식의 이름관리자가 열리지 않습니다 (6)
abbado | 2022.08.12 | 추천 0 | 조회 41
abbado 2022.08.12 - 41
41090 VBA
New 길이 계산 관련 문의 드립니다. 첨부파일 (2)
심우민 | 2022.08.11 | 추천 -1 | 조회 49
심우민 2022.08.11 -1 49
41087 문서서식
New 셀 초록색 표시 오류 해결 유튜브를 봤습니다. (1)
이성일 | 2022.08.11 | 추천 0 | 조회 34
이성일 2022.08.11 - 34
41086 함수/공식
New 어떤 수식 사용해야되는지 알려주세요ㅜ 첨부파일 (4)
🍒 | 2022.08.11 | 추천 0 | 조회 58
🍒 2022.08.11 - 58
41083 VBA
New VBA LISTBOX 활용에 대한 궁금증 엑셀파일 (3) 답변완료
박성원 | 2022.08.11 | 추천 0 | 조회 41
박성원 2022.08.11 - 41
41080 함수/공식
New index, match 함수 사용해서 일치하는 날짜 찾기 첨부파일 (2)
033cola | 2022.08.11 | 추천 0 | 조회 34
033cola 2022.08.11 - 34