Ole은 정보를 Excel 통합 문서로 가져 오는 데 문제가 발생했습니다. 그가 가져와야하는 파일은 일반적으로 수천 개의 레코드가 들어있는 텍스트 파일 인 것 같습니다. Ole은 대부분의 입력 행이 필요하지 않으며 일반적으로 레코드를 Excel로 가져 오면 해당 행을 제거합니다. Ole은 데이터가 통합 문서에있을 때 수행 할 작업을 줄이기 위해 가져 오기 프로세스 중에 원하지 않는 레코드를 제거하는 방법을 찾고 있습니다.

이 문제에 대한 해결책에 접근 할 수있는 몇 가지 다른 방법이 있습니다. 한 가지 해결책은 Access를 첫 번째 가져 오기 단계로 사용하는 것입니다. Access는 Excel로 가져올 수있는 것보다 많은 레코드가 있더라도 가져올 수천 개의 레코드를 쉽게 처리합니다. 파일을 Access로 가져오고 원하지 않는 레코드를 필터링 한 다음 결과 테이블을 Excel 통합 문서로 내보낼 수 있습니다.

그러나 가장 좋은 해결책은 Excel의 가져 오기 필터를 완전히 우회하는 것입니다. Ole과 같은 가져 오기 데이터가 텍스트 파일에있는 경우 잘 작동합니다. VBA에서 가져 오기 루틴을 쉽게 작성하고 가져 오기 파일을 처리하도록 허용 할 수 있습니다. 예를 들어, 다음 매크로를 고려하십시오.

Sub Import()

Dim sFile As String     Dim sUnwanted As String     Dim sDelim As String     Dim iRow As Integer     Dim iCol As Integer     Dim bBadRecord As Boolean     Dim iTemp As Integer

sFile = "d:\data.txt"

sUnwanted = "bad text"

sDelim = ","



Open sFile For Input As #1

iRow = 1     While Not EOF(1) 'Scan file line by line         iCol = 1         Line Input #1, sBuffer

' Check to see if should ignore record         bBadRecord = Instr(sBuffer, sUnwanted)



If Not bBadRecord Then             iTemp = Instr(sBuffer, sDelim)

While iTemp > 0                 With Application.Cells(iRow, iCol)

.NumberFormat = "@" 'Text formatting                     .Value = Left(sBuffer, iTemp-1)

End With                 iCol = iCol + 1                 sBuffer = Mid(sBuffer, iTemp+1, Len(sBuffer))

iTemp = Instr(sBuffer, sDelim)

Wend             If Len(sBuffer) > 0 Then                 With Application.Cells(iRow, iCol)

.NumberFormat = "@" 'Text formatting                     .Value = sBuffer                 End With             End If             iRow = iRow + 1         End If     Wend     Close #1 End Sub

이 매크로는 데이터 파일을 열고 파일의 각 레코드를 읽습니다. 가져 오기에 문제가 없는지 레코드를 확인한 다음 구분 기호를 기준으로 레코드를 분리하고 정보를 현재 워크 시트에 채 웁니다. 데이터 파일의 이름 (sFile 변수), 잘못된 레코드를 나타내는 텍스트 (sUnwanted 변수) 및 구분 기호 (sDelim 변수)를 변경할 수 있습니다.

예를 들어 Customers.txt라는 데이터 파일이 있다고 가정 해 보겠습니다. 이 파일에는 모든 고객 레코드가 포함되어 있지만 주소가 미국 내에있는 고객에 대한 레코드를 가져 오지 않으려 고합니다. 또한 데이터 파일의 레코드는 각 필드 사이에 탭 문자를 사용합니다. 이 경우 매크로 시작 부분에서 변수를 다음과 같이 변경하기 만하면됩니다.

sFile = "d:\Customers.txt"

sUnwanted = "United States"

sDelim = Chr(9)

매크로를 실행하면 현재 워크 시트에 원하는 데이터 만 포함됩니다.

_ 참고 : _

이 페이지 (또는 ExcelTips 사이트의 다른 페이지)에 설명 된 매크로를 사용하는 방법을 알고 싶다면 유용한 정보가 포함 된 특별 페이지를 준비했습니다.

link : / excelribbon-ExcelTipsMacros [새 브라우저 탭에서 특별 페이지를 열려면 여기를 클릭하세요].

_ExcelTips_는 비용 효율적인 Microsoft Excel 교육을위한 소스입니다.

이 팁 (8491)은 Office 365의 Microsoft Excel 2007, 2010, 2013, 2016, 2019 및 Excel에 적용됩니다. 여기에서 Excel의 이전 메뉴 인터페이스에 대한이 팁 버전을 찾을 수 있습니다.

link : / excel-Selectively_Importing_Records [Selectively Importing Records].