VBA. Как перенести один знак в строке из конца в начало?
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > VBA. Как перенести один знак в строке из конца в начало?

VBA. Как перенести один знак в строке из конца в начало?

Ответ
Поиск в этой теме
Непрочитано 04.07.2014, 11:33 #1
VBA. Как перенести один знак в строке из конца в начало?
Alexeipost
 
Уфа
Регистрация: 07.12.2010
Сообщений: 427

Эксель.
Есть строка в виде текста с цифрами 258*33+58=
Надо в соседней ячейке чтобы эта формула вычислялась. т.е. её вид должен быть =258*33+58, а в ячейке должно быть 8572.
Если это делать стандартными функциями экселя (левсимв, длстр), то получается вставить только как текст.

Помогите пожалуйста...
Просмотров: 4351
 
Непрочитано 04.07.2014, 11:37
#2
swell{d}

гадание на конечно-элементной гуще
 
Регистрация: 31.05.2006
Düsseldorf
Сообщений: 7,596


есть разница между Cells(a, b).Value и Cells(a, b).Formula
попробуйте
__________________
.: WikiЖБК + YouTube :.
swell{d} вне форума  
 
Непрочитано 04.07.2014, 12:03
#3
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,611


Вычисление формулы из строки вводимой пользователем
Boxa вне форума  
 
Автор темы   Непрочитано 04.07.2014, 12:51
#4
Alexeipost


 
Регистрация: 07.12.2010
Уфа
Сообщений: 427
<phrase 1=


2 Boxa по указанной ссылке ничего не нашел.

Вот так вставляет значение из ячейки (11,4) в ячейку (11,6) без последнего символа
Код:
[Выделить все]
   Cells(11, 6).Formula = Left(Cells(11, 4).Value, Len(Cells(11, 4).Value) - 1)
и если потом вручную поставить знак "=", то всё вычисляется.

А вот так
Код:
[Выделить все]
   Cells(11, 6).Formula = "=" + Left(Cells(11, 4).Value, Len(Cells(11, 4).Value) - 1)
вылетает с ошибкой
Alexeipost вне форума  
 
Непрочитано 04.07.2014, 12:59
#5
swell{d}

гадание на конечно-элементной гуще
 
Регистрация: 31.05.2006
Düsseldorf
Сообщений: 7,596


Cells(11, 6).Formula = "=" + Left(Cells(11, 4).Formula, Len(Cells(11, 4).Formula) - 1)
а так?
__________________
.: WikiЖБК + YouTube :.
swell{d} вне форума  
 
Автор темы   Непрочитано 04.07.2014, 13:02
#6
Alexeipost


 
Регистрация: 07.12.2010
Уфа
Сообщений: 427
<phrase 1=


Цитата:
Сообщение от swell{d} Посмотреть сообщение
Cells(11, 6).Formula = "=" + Left(Cells(11, 4).Formula, Len(Cells(11, 4).Formula) - 1)
а так?
и так тоже ошибка.
И даже вот так не прокатывает:
Код:
[Выделить все]
Cells(11, 6).Formula = Left(Cells(11, 4).Formula, Len(Cells(11, 4).Formula) - 1)
           Cells(11, 6).Formula = "=" + Cells(11, 6).Formula
Alexeipost вне форума  
 
Непрочитано 04.07.2014, 13:43
#7
AlphaGeo


 
Сообщений: n/a


Boxa подсказал уже куда копать... Смотрите в список имен диапазонов в файле.
Макрофункция ВЫЧИСЛИТЬ()
Вложения
Тип файла: zip Текст_Формула.xls.zip (4.1 Кб, 36 просмотров)
 
 
Автор темы   Непрочитано 04.07.2014, 14:17
#8
Alexeipost


 
Регистрация: 07.12.2010
Уфа
Сообщений: 427
<phrase 1=


2 AlphaGeo
Я не понял как это работает, но это работает!!!
Спасибо большое!
Alexeipost вне форума  
 
Непрочитано 04.07.2014, 15:13
#9
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,611


AlphaGeo, забавно. Обновил знания, но это работает только в EXcel, OOorg и прочие свободные редакторы в пролете.
Alexeipost, По моему там все написано, но возможно так будет понятнее:
Boxa вне форума  
 
Непрочитано 04.07.2014, 16:10
#10
AlphaGeo


 
Сообщений: n/a


Цитата:
Сообщение от Alexeipost Посмотреть сообщение
Я не понял как это работает, но это работает!!!
А как же применять в дальнейшем будешь?
Нужно просто формулу вбивать не в саму ячейку, а вот

А в ячейку нужно ввести заданное имя диапазона. При составлении формулы в имени нужно быть внимательным и следить за абсолютными/относительными ссылками — в зависимости от того, что необходимо в конкретной ситуации.

Цитата:
Сообщение от Boxa Посмотреть сообщение
Обновил знания, но это работает только в EXcel, OOorg и прочие свободные редакторы в пролете.
Сам о такой возможности узнал только сегодня... И ведь даже не похоже на «баг, который как фича»
Какая хорошая возможность открылась скрывать формулы от любопытных глаз

Offtop: Я бы в названии темы «VBA» заменил на «Excel», дабы в будущем не пугать народ.
Миниатюры
Нажмите на изображение для увеличения
Название: Excel_MacroCalc.png
Просмотров: 288
Размер:	31.8 Кб
ID:	131594  
 
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > VBA. Как перенести один знак в строке из конца в начало?

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как перенести объект в начало координат Автокад 2007 Владимир Егорьев AutoCAD 10 07.10.2018 21:13
Линии электрических соединений Shoorup Программирование 23 07.02.2015 15:13
Как перенести начало координат в Лире V1adiM Лира / Лира-САПР 7 17.09.2010 17:36
Как в строке сместиться на один символ вперед Zaghim Программирование 2 02.09.2010 16:48
как часто вы ходите в театр? Jоhnny Разное 61 15.06.2009 13:19