Может кто-то сталкивался с подобной задачей и подскажет как её можно реализовать:
Необходимо в ячейку содержащую значение/формулу или математическое выражение добавить множитель на определённый коэффициент, при этом всё что ранее находилось в этой ячейке нужно поместить в скобки (кроме знака равно), но саму формулу оставить неизменной.
Например: в ячейке А1 содержится выражение "=15/2*1,2", после выполнения команды в этой ячейке должна получиться запись "=(15/2*1,2)*K", где K - имя именованной ячейки в этом же файле.
Поиск в интернете не принёс результатов, очень много примеров, как макросом вписать формулу в ячейку или как в соседнюю ячейку записать подправленную формулу из первой. А как записать формулу формата Excel в макрос и затем перезаписать её в этой же ячейке, примеров не нашёл...
Пока я дошёл до следующей формулы:
Код |
---|
Dim xPrice Set xPrice = ActiveCell ActiveCell.Formula = "=(" & xPrice & ")*курсЕ" |
В данном случае цена в активной ячейке домножается на курс Евро (значение которого указано в именованной ячейке курсЕ)
Но формула работает не совсем корректно...
1) При попытке присвоить переменной xPrice атрибут String, в переменную перестаёт записываться содержимое ActiveCell...
2) Если в ячейку записано "=10/2", то макрос срабатывает, но переменной xPrice присваивается значение, а не формула и в итоге вместо требуемой строки в формуле "=(10/2)*курсЕ", записывается "=(5)*курсЕ", т. е. теряются необходимые данные.
P. S. Почему-то данная формула перестала работать, если переменной xPrice присваивается дробное число. Хотя изначально макрос выполнялся.
В дальнейшем скрипт планируется нарастить проверками ячейки на содержимое. Например, чтобы случайно не помножить 2 раза на курс Евро или не брать выражение в скобки если оно уже в них.
Макросу планируется присвоить комбинацию горячих клавиш, при нажатии которой в активную ячейку добавлялся бы множитель.
Спасибо!