2009-05-29 65 views
1

串的專欄中,我想解析在Excel VBA中的字符串單元列,各小區中包含以下內容:解析使用VBA

2 '␂' 

我想這個單元格的內容改變只包含2個字符(或'string'前面的任何數字字符)。解析這些信息的最簡單方法是什麼?謝謝。

+0

http://stackoverflow.com/questions/924717/excel-finding-and-removing-some-characters-in-a-column-of-data的重複?? – barrowc 2009-05-30 00:07:43

+0

這是一個單獨的問題,源於我早先在barrowc的主題上詢問的問題。 – stanigator 2009-05-30 04:30:44

回答

2

如果您確定格式,請在'(撇號)前找到字符串&更改單元格值 假設您位於具有此值的單元格上,請使用以下VBA代碼:

activecell.text = mid(activecell.text, 1, instr(1, activecell.Text, "'")-1)

它尋找一個撇號,並提取字符它&把它放到當前單元格之前。

0

假設數值數據總是在單元格的起始位置,您可以使用正則表達式在字符串開頭找到任何連續的數字,一旦它遇到第一個非數字字符就停下來。這是一個可以爲你做的功能,我希望它有幫助。 ^表示單元格的開始,(\ d +)表示一個或多個數字字符,。*表示後跟零個或多個字符。我假設只有一串你需要的數字,所以我有正則表達式返回子匹配0(第一次匹配)。

Function ExtractNumericData(ByVal text As String) As String 

Application.ScreenUpdating = False 
Dim allMatches As Object 
Dim RE As Object 
Set RE = CreateObject("vbscript.regexp") 

RE.Pattern = "^(\d+).*" 
RE.Global = True 
Set allMatches = RE.Execute(text) 
ExtractNumericData = allMatches.Item(0).submatches.Item(0) 
Application.ScreenUpdating = True 

End Function