Вот решение:
Я написал функцию, которая заменяет все вхождения строки strFind на strReplace, но только если 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, чтобы заменить все вхождения "*" на ","