상세 컨텐츠

본문 제목

[VBA] 엑셀 파일 열지 않고 데이터 가져오기

[기록] Programming

by brightwing1218 2019. 12. 6. 10:00

본문

 

POINT

 

 

주요 오류

  • 값 업데이트라고 뜨면서 참조 경로를 찾지 못함 --> rngC.Formula에서 참조 경로를 제대로 설정했는지 체크

개선 고려해볼 것

  • 대상 엑셀파일의 경로 지정 프로세스가 코드 단에서 제어되는 것이 아니라,
    Application.FileDialog(msoFileDialogFilePicker)를 사용할 수 있다면 더 편할 듯.
  • rngAll도 같은 맥락에서, ActiveCell을 지정하게 할 수 있을까?
Option Explicit

Sub get_From_Closed_File()

'                           //변수 정의
Dim strPath As String
Dim fileName As String
Dim shtName As String
Dim rngAll As Range
Dim rngC As Range

'                           // 대상 엑셀파일의 경로 지정
shtName = "test"
strPath = "C:\Users\사용자\Desktop\"
fileName = "Book2.xlsx"
Set rngAll = Range("A1:C7")

'                           // rangeAll 내 속하는 모든 셀에 접근하여, ActiveCell에 1개씩 값을 옮김.
For Each rngC In rngAll
    rngC.Formula = "='" & strPath & "[" & fileName & "]" & shtName & "'!" & rngC.Address 
    rngC = rngC.Value 'rngC의 식을 불러온 것을 값으로 변환.
Next rngC

'                           //range 초기화(개체변수 초기화)
Set rngAll = Nothing

End Sub

관련글 더보기

댓글 영역