2009-09-16 43 views
0

我目前正在研究一個vba項目,它有最終用戶將 文本的長字符串複製/粘貼到工作表中,並將代碼解析出垃圾中的數據這些字符串和 從他們組織它。在vba中的正則表達式尋找組中的字符串

字符串將始終長度不同,並且數據之間的空格數量不同。但是,它們將始終按照相同的方式分組(即價格優先,一些空白區域,單價,一些空白區域和ID號)。有沒有一個正則表達式可以將這些組(字母和數字)從空格中拉出來?

回答

2

如果您只是想刪除連續的空格分隔符,則可以使用「文本到列」。

 MyRange.TextToColumns Destination:=MyRange.Cells(1), _ 
     DataType:=xlDelimited, _ 
     ConsecutiveDelimiter:=True, _ 
     Space:=True

然後,你可以讀你的價值觀出目標範圍的細胞,MyRange.Cells(1).CurrentRegion

2

在VBA:

Split(inputstring) 

您還可以設置不同的分隔符,但它默認使用空間。

This dupe有一點點的信息。

1

我不知道怎麼挺重的語法在Excel中VBA工作,但在Python(這是類似Perl),最簡單的正則表達式是:

\S+ 

這將匹配的非任意序列 - 空格字符,並在python中,我會使用它的findall方法來獲取文檔中的所有匹配項。

如果excel VBA不是一個簡單的方法來做到這一點,我會衷心推薦爲python開槽excel(但我承認excel是偉大的,容易解析)。

相關問題