닫힌 통합 문서에서 데이터를 당겨
_ 다른 통합 문서의 닫힌 파일에서 데이터를 추출하는 것은 대부분의 Excel 사용자가 일반적으로 요청하는 것입니다. 닫힌 파일에서 데이터를 가져 오거나 통합하려고합니다. 그러나 이것은 불가능합니다. 이 문제를 해결하는 데 도움이되는 해결 방법이 있습니다. 솔루션은 매크로 코드를 사용하고 있습니다 ._
질문 : 매일 한 파일에서 다른 파일로 데이터를 복사하는 데 시간을 보냅니다. “Open.xls”와“Closed.xls”라는 두 개의 파일이 있으며 VBA 코드를 통해“Closed.xls”에서“Open.xls”로 데이터를 복사하고 싶습니다.
===
알아야 할 주요 사항 :
첫 번째는 닫힌 통합 문서의 “Usedrange”, 즉 열린 통합 문서 내에서 “Closed.xls”를 알아야한다는 것입니다. “Open.xls”“Open.xls”통합 문서 내“Closed.xls”통합 문서의 Usedrange에서 IF 함수를 사용할 수 있으며“Closed.xls”통합 문서에서 데이터를 추출합니다. * 참조 셀이 비어 있으면 #N / A가 제자리에 배치됩니다. specialcells 방법을 사용하면 모든 # N / A 오류를 삭제하고 수식을 값으로 변경할 수 있습니다. 시작하려면 두 개의 Excel 파일을 저장합니다. 1) Open.xls 2) Closed.xls를 경로“D : \ Test 폴더”다음은“Closed.xls”통합 문서의 스냅 샷입니다.
“Closed.xls”파일의 데이터를“Open.xls”파일에 자동으로 저장하려면 아래 단계에 따라 VB 편집기를 실행해야합니다. 개발자 탭을 클릭합니다. 코드 그룹에서 Visual Basic을 선택합니다.
-
ThisWorkbook (Closed.xls)에서 아래 코드를 복사하세요
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, _ Cancel As Boolean) 'Put in the UsedRange Address of Sheet1 Closed.xls (this workbook)' --- Comment Sheet2.Cells(1, 1) = Sheet1.UsedRange.Address End Sub
-
“Open.xls”에서 데이터를 가져 오려면 표준 모듈에 다음 코드를 복사하세요
Sub Importdata() Dim AreaAddress As String Sheet1.UsedRange.Clear Sheet1.Cells(1, 1) = "= 'D:\Test Folder\" & "[Closed.xls]Sheet2'!RC" AreaAddress = Sheet1.Cells(1, 1) With Sheet1.Range(AreaAddress) .FormulaR1C1 = "=IF('D:\Test Folder\" & "[Closed.xls]Sheet1'!RC="""",NA(),'D:\Test Folder\" & _ "[Closed.xls]Sheet1'!RC)" On Error Resume Next .SpecialCells(xlCellTypeFormulas, xlErrors).Clear On Error GoTo 0 .Value = .Value End With End Sub
-
ThisWorkbook (Open.xls)에서 다음 코드를 복사하세요
Private Sub Workbook_Open() Run "Importdata" End Sub
이제 VBA 코드가 모두 설정되었습니다. 우리가해야 할 일은“Open.xls”라는 파일 이름을 여는 것입니다. 다음은“Open.xls”파일의 스냅 샷입니다.
코드는 A1.usedrange의 셀 복사에만 국한되지 않습니다. 코드는 시작 범위를 선택하고 완벽하게 작동합니다. 파일을 다운로드 할 수 있으며 사용하는 것이 좋습니다.
===
결론 : VBA 코드를 사용하면 대상 통합 문서를 열지 않고도 데이터 추출 작업을 자동화 할 수 있으며 수동 복사 및 붙여 넣기를 수행하지 않아도됩니다.
_ 블로그가 마음에 들면 Facebook에서 친구들과 공유하세요. Twitter와 Facebook에서도 팔로우 할 수 있습니다 ._
_ 우리는 여러분의 의견을 듣고 싶습니다. 우리가 작업을 개선, 보완 또는 혁신하고 더 나은 서비스를 제공 할 수있는 방법을 알려주십시오. [email protected]_로 문의 해주세요