2009-07-11 116 views
3

我身邊有100行,我要來標記文本,這是一樣的以下內容:符號化的字符串

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

我無法找到與VBA記號化功能。在VBA中標記這些字符串最簡單的方法是什麼?

+0

你從哪裏取字符串?如果他們在實際的Word文檔中,則可以使用Word的內置搜索和替換功能。 – guillermooo 2009-07-12 21:07:33

回答

3

您可以逐行閱讀,並使用拆分功能按空格拆分單詞和數字。我依稀記得VBA有分裂功能。

我通過在谷歌搜索得到以下鏈接。不確定您使用的是哪個版本的辦公室。

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

此鏈接有分裂功能。

+0

我設法將行分割成一個字符串數組,我們假設它叫做hello()。有效內容位於hello()的第一個和最後一個條目中。由於數組的大小是可變的,我怎樣才能找出數組的大小來解決數組的第一個和最後一個入口。 – stanigator 2009-07-11 03:05:37

+0

你可以使用ubound(數組)來獲取元素的數量。您可以通過數組(0)和數組的最後一個條目(ubound(array))獲取第一個條目。分割返回一維數組。因此,myarray = split(「hello world」,「」)debug.print myarray(0)dim elementCount as integer elementCount = ubound(myarray)debug.print myarray(elementCount)。 – shahkalpesh 2009-07-11 03:10:47

2

可以使用Split()方法或更復雜的比賽,你可以使用"vbscript.regexp"對象:

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正則表達式:Using Regular Expressions (RegExp) in Excel