[VBA] 다른 엑셀파일 내용 가져오기 (프론트, 백)

2021. 8. 9. 11:42·[VBA]
반응형

 

※ 백에서 엑셀 파일 가져오기

 

아래 코드를 실행하면 데이터를 가져올 파일이 직접 열리면서 값을 가져오게 된다.

(순서가 바껴서 수정)

 아래가 getobject 함수를 사용해서 백에서 가져옵니다.

 

Sub 다른엑셀파일가져오기()

Application.ScreenUpdating = False
Application.DisplayAlerts = False

Dim str가져올파일 As String
Dim obj가져올파일 As Object
Dim wb가져올파일 As Workbook, wb현재파일 As Workbook
Dim ws시트1 As Worksheet, ws현재시트 As Worksheet


'하드코딩
str가져올파일 = "C:\Users\USER\Desktop\Test\test.xlsx"



'현재 워크북 set
Set wb현재파일 = ThisWorkbook
Set ws현재시트 = wb현재파일.Sheets(1)


'가져올 파일 set
Set obj가져올파일 = GetObject(str가져올파일)

Set wb가져올파일 = Workbooks(Dir(str가져올파일))
Set ws시트1 = wb가져올파일.Sheets(1)

'파일 복사
ws시트1.UsedRange.Copy Destination:=ws현재시트.Range("a1")


obj가져올파일.Close


Application.ScreenUpdating = True
Application.DisplayAlerts = True


End Sub

하지만 이처럼 코드를 사용하면 중간에 컴퓨터가 느려지거나 할 때 close가 잘 되지 않아 오류가 발생할 경우도 있고, 안정적으로 실행되지 않는 경우가 있다.

 

따라서 아래와 같은 코드를 활용해 보기 바란다.

 

아래가 파일오픈해서 가져오는 방식

 

※ 프론트에서 데이터가져오기 

 

Sub 다른엑셀파일가져오기()

Application.ScreenUpdating = False
Application.DisplayAlerts = False

Dim str가져올파일 As String
Dim obj가져올파일 As Object
Dim wb가져올파일 As Workbook, wb현재파일 As Workbook
Dim ws시트1 As Worksheet, ws현재시트 As Worksheet


'하드코딩
str가져올파일 = "C:\Users\USER\Desktop\Test\test.xlsx"



'현재 워크북 set
Set wb현재파일 = ThisWorkbook
Set ws현재시트 = wb현재파일.Sheets(1)


'가져올 파일 set
Workbooks.Open Filename:=str가져올파일, UpdateLinks:=False

Set wb가져올파일 = Workbooks(Dir(str가져올파일))
Set ws시트1 = wb가져올파일.Sheets(1)

'파일 복사
ws시트1.UsedRange.Copy Destination:=ws현재시트.Range("a1")

wb가져올파일.Close



Application.ScreenUpdating = True
Application.DisplayAlerts = True


End Sub

위와 같이 코드를 실행하면 excel 파일은 실제로 열리지 않으면서 데이터를 가져올 수 있다.

 

파일을 열어서 가져온다.

파일 열린게 눈으로 보인다.

 

 

 

예제 파일 (사용할때 파일경로만 변경)

다른엑셀파일값가져오기.zip
0.63MB

 

반응형
저작자표시 비영리 변경금지 (새창열림)

'[VBA]' 카테고리의 다른 글

[VBA] 소수점 자릿수 계산  (0) 2022.02.18
[VBA] 엑셀 기본 저장 format 설정  (0) 2021.08.09
[VBA] 셀에 있는 초록색 삼각형 없애기  (0) 2021.08.06
[VBA] 숨겨진 워크시트 모두 보이기  (0) 2021.07.01
[VBA] 범위 합계 구하기  (0) 2021.04.16
'[VBA]' 카테고리의 다른 글
  • [VBA] 소수점 자릿수 계산
  • [VBA] 엑셀 기본 저장 format 설정
  • [VBA] 셀에 있는 초록색 삼각형 없애기
  • [VBA] 숨겨진 워크시트 모두 보이기
jkod
jkod
  • jkod
    개발린이
    jkod
  • 반응형
    • 분류 전체보기 N
      • [RPA]
      • [Python]
      • [VBA]
      • [JAVA]
      • [Window]
      • [MAC]
      • [기타] N
        • 생활 N
  • 최근 글

  • 인기 글

  • hELLO· Designed By정상우.v4.10.2
jkod
[VBA] 다른 엑셀파일 내용 가져오기 (프론트, 백)
상단으로

티스토리툴바