2012-03-05 2 views
1

CSV 파일을 읽고 Excel/VBA의 데이터로 직접 작업하는 직접적이고 효율적인 방법을 찾고 있습니까?Excel VBA : CSV 파일의 데이터로 작업하는 가장 좋은 방법

가장 좋은 방법은 행과 열을 지정하여 데이터를 직접 액세스하는 것입니다. 원하는 옵션을 말해 줄 수 있습니까? 다음 두 가지 옵션을 추가로 알고 있습니까?

A : 사용 Workbooks.Open 또는 Workbooks.OpenText 통합 문서로 CSV 파일을 엽니 다. 그런 다음 통합 문서로 작업하십시오 (this thread 비교).

B : 을 사용하여 데이터를 문자열에 씁니다. 문자열로 작업하십시오 (this thread 비교).

고맙습니다.

========== 편집 =========는

은 제가 지금까지 귀하의 게시물에서 배운 내용을 추가하자 작업을 할 수있는 최적의 옵션을 당신이 정확히하고 싶은 일에 너무 많이 의존하므로 대답이 불가능합니다. 또한 csv 파일을 읽는 다음과 같은 추가 옵션이 있습니다.

C : ADS (SQL 형식 문)에 VBScript 형식의 언어를 사용합니다. 나는 여전히 작동하는 최소한의 예제를 만드는 방법을 고민하고있다.

D :FileSystemObject을 사용하십시오. this thread

+3

원하는 작업에 따라 달라집니다.이 질문에 대한 절대적인 대답은 없습니다. Excel 인터페이스가 필요한 경우 메서드 A를 사용하십시오. 많은 파일을로드하고 속도가 필요한 경우 B를 수행하십시오. –

+2

FileSystemObject를 사용할 수도 있습니다 (Microsoft Scripting Runtime에 대한 참조 추가). 그것은 항상 나의 취향이다. – markblandford

+0

나는 JFC에 동의한다. –

답변

1

엑셀에 CSV 데이터를 추가하는 가장 빠르고 효율적인 방법은 Excel의 텍스트 가져 오기 마법사를 사용하는 것입니다. 이것은 CSV 파일을 구문 분석하여 데이터 형식을 지정하고 구성하는 몇 가지 옵션을 제공합니다. 일반적으로 자체 CSV 구문 분석기를 프로그래밍 할 때 이상한 구문 사례는 무시되므로 구문 분석 코드가 다시 작성됩니다. 엑셀 마법사를 사용하면이를 처리하고 서식 옵션과 같은 다른 보너스를 제공합니다. "데이터"탭에서 Excel 2007/2010의 csv를로드하려면 "텍스트에서"를 선택하여 "텍스트 가져 오기 마법사"를 시작합니다. 기본 구분 기호는 탭이므로 2 단계에서 쉼표 (또는 다른 문자)로 변경해야합니다.

+1

다양한 옵션의 성능을 테스트 해 보셨습니까? – assylias

+1

제가 제안하는 효율성은 프로그래밍 시간입니다. 자신의 버전을 작성하는 데는 몇 차례의 시간이 걸립니다. Excel의 기본 제공 솔루션을 사용하면 이미 이러한 경우를 처리합니다. 예를 들어, 솔루션과 링크는 인용 된 쉼표로 유효한 CSV를 처리하지 않습니다. chicago, LA, "NY, NY" – jdh

+0

프로그래밍 시간부터 동의합니다. – assylias

관련 문제