Я столкнулся с подобной проблемой, но пошел другим путем, желая избежать использования VBA.Рекурсивное использование замены заменило меня, как показано ниже:
Исходные данные (в A1: An, n = целое число) ROE -1.00 P / E 0,07 -0,85 ROC-ROE 0,02 -0,03 и т. Д..
= ЗАМЕНА (ЗАМЕНА (ЗАМЕНА (ЗАМЕНА) (ЗАМЕНА (ЗАМЕНА (ЗАМЕНА (ЗАМЕНА (ЗАМЕНА (A1, "1", "", ",", ","))""), "3", ""), "4", ""), "5", ""), "6", ""), "7", ""), "8", ""), "9", "")
, который можно расширить, чтобы избавиться от "-" и десятичного индикатора "."а также "+" (если это уместно) и, наконец, лишние пробелы, использующие
= trim (substitute (substituteue (SUBSTITUTE (SUBSTITUTE (SUBSTITUTE (SUBSTITUTE)(А1, "1", ""), "0", ""), "2", ""), "3", ""), "4", ""), "5", ""), "6", ""), "7", ""), "8", ""), "9", ""), "-", ""), "+", ""),». "," "))
, где нижний регистр представляет сложности, добавленные на текущем шаге.
Это естественным образом отображается на весь массив путем изменения ссылки на диапазон на весь массив, который будет проанализирован (A1: An) и ввод формулы в виде массива (т. Е. Использование Ctl + Enter вместо Enter для завершения задачи).
Затем я использую len (B1), чтобы проверить, что результаты - это то, что я хочу.
Не элегантно, по общему признанию.Но может оказаться полезным упражнением для обучения студентов мыслить и кодировать «на лету».