2009-07-11 3 views
3

나는 다음과 비슷 내가 토큰 화하려는 텍스트의 약 100 개의 행을 가지고 :토큰 화 문자열

<word> <unknown number of spaces and tabs> <number> 

내가 VBA과 토큰 화 기능을 찾는 데 문제가 있어요. VBA에서 이러한 문자열을 토큰 화하는 가장 쉬운 방법은 무엇입니까?

+0

어디에서 문자열을 가져 왔습니까? 실제 Word 문서에있는 경우 Word의 기본 제공 검색 기능을 사용할 수 있습니다. – guillermooo

답변

3

줄 단위로 읽을 수 있으며 split 함수를 사용하여 단어와 숫자를 공백으로 나눌 수 있습니다. 나는 막연하게 VBA가 분할 기능을 가지고 있다는 것을 기억한다.

Google에서 검색하여 다음 링크가 있습니다. 어떤 버전의 사무실을 사용하고 있는지 확실하지 않습니다.

http://msdn.microsoft.com/en-us/library/aa155763(office.10).aspx

이 링크는 분할 기능을 가지고 있습니다.

+0

행을 문자열 배열로 분할했습니다. hello()라고합니다. 유효한 내용은 hello()의 첫 번째 항목과 마지막 항목에 있습니다. 배열의 크기가 가변적이므로 배열의 첫 번째 항목과 마지막 항목을 처리하기 위해 배열의 크기를 어떻게 알 수 있습니까? – stanigator

+0

ubound (array)를 사용하여 요소 수를 얻을 수 있습니다. 배열 (0)에 의한 첫 번째 엔트리와 배열 (ubound (array))에 의한 마지막 엔트리를 얻을 수 있습니다. Split은 1 차원 배열을 반환합니다. 따라서 myarray = split ("hello world", "") debug.print myarray (0) dim elementCount 정수로 elementCount = ubound (myarray) debug.print myarray (elementCount). – shahkalpesh

0

VBA 분할 기능을 마우스 오른쪽 MS의에서 : 여기

Sub NewRegex() 
    Dim reg 
    Dim matches, match, tmpStr As String 

    Set reg = CreateObject("vbscript.regexp") 
    tmpStr = "blah bla ...." 

    With reg 
     .IgnoreCase = True 
     .MultiLine = False 
     .Pattern = "your regex pattern goes here" 
     .Global = True 
    End With 

    Set matches = reg.Execute(tmpStr) 

    For Each match In matches 
     MsgBox match 
    Next mt 

End Sub 

를 튜토리얼 VBA에서 정규식을 사용하는 방법에의 페이지

http://msdn.microsoft.com/en-us/library/aa155763(office.10).aspx

관련 문제