這裏有一個解決方案:
我已經寫了一個函數,用strReplace代替所有出現的strFind字符串,但前提是strFind出現在括號內。所以你可以用別的東西替換所有的「,」字符(例如「*」),然後將Excel的文本轉換爲列,然後再用「,」替換「*」。
Function replace_paren(strSource As String, strFind As String, strReplace As String) As String
' Within strString, replaces any occurrence of strFind with strReplace *IF* strFind occurs within parentheses '
Dim intOpenParenIndex As Integer
Dim intCloseParenIndex As Integer
Do
intOpenParenIndex = InStr(intCloseParenIndex + 1, strSource, "(")
intCloseParenIndex = InStr(intOpenParenIndex + 1, strSource, ")")
If intOpenParenIndex = 0 Then
Exit Do
End If
Mid(strSource, intOpenParenIndex, intCloseParenIndex - intOpenParenIndex) = Replace(Mid(strSource, intOpenParenIndex, intCloseParenIndex - intOpenParenIndex), strFind, strReplace)
Loop
replace_paren = strSource
End Function
因此,步驟是:
1)這個宏複製到一個模塊中的Excel工作簿
2)假設你的字符串是A列在B列,設置功能,以取代這樣
= replace_paren逗號(A1, 「」, 「*」)
3)填充公式向下列
4)複製並粘貼列值
5)使用Excel中的文本列解析使用列「」作爲分隔符
6)再次使用replace_paren被取代的‘*’所有的「」
注意如果有嵌套括號,代碼會中斷。 – Emily 2009-07-22 20:25:59