powered by simpleCommunicator - 2.0.39     © 2025 Programmizd 02
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Excel функция Evaluate
19 сообщений из 19, страница 1 из 1
Excel функция Evaluate
    #39159465
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго дня господа

Excel функция Evaluate, необходимо передать на вход функции длинную строку больше
300 символов у меня воспринимает только 252 ?
Как быть и чем заменить ?

Спасибо !
...
Рейтинг: 0 / 0
Excel функция Evaluate
    #39159487
Фотография essbase.ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HOME_X,

уверен что ты сможешь найти в себе силы обрезать лишнее
передавай ссылки а не значения
...
Рейтинг: 0 / 0
Excel функция Evaluate
    #39159508
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
HOME_X,
записать строку в ячейку как формулу, взять значение ячейки, очистить ячейку.
...
Рейтинг: 0 / 0
Excel функция Evaluate
    #39159538
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Казанский,

Не годится ....
Я использую пользоват. функцию, вызываю ее из листа Excel
при такой архит-ре я не могу писать или пересчитывать другие
ячейки.
...
Рейтинг: 0 / 0
Excel функция Evaluate
    #39159539
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
essbase.ruHOME_X,

уверен что ты сможешь найти в себе силы обрезать лишнее
передавай ссылки а не значения

Не совсем Вас понял (обрезать лишнее.... нет проблем)

"...передавай ссылки а не значения..."
Данная функция может принимать указатели на строку ?

Прошу Вас уточнить это на примере (строка из 300 символов например)


Заранее благодарен !
...
Рейтинг: 0 / 0
Excel функция Evaluate
    #39159570
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HOME_XЯ использую пользоват. функциюи что мешает в ней вычислять по частям? И что мешает вообще все на код переложить?
...
Рейтинг: 0 / 0
Excel функция Evaluate
    #39159591
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
The_Prist,

Частями - надо парсить текст,
части могут быть произвольной длины типа 123+678 или 10+1, тогда надо парсить трудоемко
Переложить все на код неудобно, изначально идет прошивка формул на листе.
...
Рейтинг: 0 / 0
Excel функция Evaluate
    #39159592
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HOME_X,

Пробывал работать по ссылке, но результата не получил
Типа S=Application.Evaluate("A1").Value возвращает ячейку A1,
а надо ПЕРЕСЧИТАННУЮ ячейку A1
...
Рейтинг: 0 / 0
Excel функция Evaluate
    #39159612
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
HOME_XКак быть и чем заменить ?
Если выражение не содержит элементов из пространства имен Excel, то можно использовать scriptcintrol. Вот например вычисление значения строки 1+2+... длиной более 1000
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Sub sc()
Dim i&, s$, n&, m&
  For i = 1 To 300
    s = s & "+" & i
    n = n + i
    If Len(s) > 1000 Then Exit For
  Next
  s = Mid$(s, 2)
  With CreateObject("scriptcontrol")
    .Language = "VBScript"
    m = .eval(s)
  End With
  MsgBox "длина строки " & Len(s) & vbLf & _
    "результат scriptcontrol " & m & vbLf & _
    "проверка " & n
End Sub
...
Рейтинг: 0 / 0
Excel функция Evaluate
    #39159618
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Excel функция Evaluate
    #39159645
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Казанский,

Понял - спасибо - пробую !
...
Рейтинг: 0 / 0
Excel функция Evaluate
    #39159648
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HOME_X,
Вот здесь не совсем понял
https://msdn.microsoft.com/en-us/library/office/ff193019.aspx

Вроде должно понимать сигнатуру типа Range.... но в реальности пересчета не могу добиться


Код: vbnet
1.
2.
3.
4.
 
• A1-style references. You can use any reference to a single cell in A1-style notation. All references are considered to be absolute references.

• Ranges. You can use the range, intersect, and union operators (colon, space, and comma, respectively) with reference



К чему этот пример
Set firstCellInSheet = _
Workbooks("BOOK1.XLS").Sheets(4).Evaluate("A1")
Типа возвращает УЖЕ пересчитанную ячейку
...
Рейтинг: 0 / 0
Excel функция Evaluate
    #39159674
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Казанский,

Ваш прием хорош - возьму на вооружение !

В моем случае немного не подошел, присутствует конкретные
выражения Excel-я которые может читать только ядро Excel-я

Пришлось парсить учитывая искусственный разделить с учетом
длины строки..


Всем спасибо за участие и советы.
...
Рейтинг: 0 / 0
Excel функция Evaluate
    #39159780
An12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
HOME_X,

текстовку более 252 можно вставлять как "...." & "....." & "......" и т.д.
...
Рейтинг: 0 / 0
Excel функция Evaluate
    #39159916
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
An12,

Так и реализовано
Код: vbnet
1.
2.
3.
4.
5.
    Read = Mid(Path.Formula, 2)
    For Each Line In Split(Read, "&")
      Hash = Hash & Evaluate(CStr(Line))
    Next
    rsExes.ActiveConnection = CStr(Hash)
...
Рейтинг: 0 / 0
Excel функция Evaluate
    #39159918
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HOME_XHOME_X,
Вот здесь не совсем понял
https://msdn.microsoft.com/en-us/library/office/ff193019.aspx

Вроде должно понимать сигнатуру типа Range.... но в реальности пересчета не могу добиться


Код: vbnet
1.
2.
3.
4.
 
• A1-style references. You can use any reference to a single cell in A1-style notation. All references are considered to be absolute references.

• Ranges. You can use the range, intersect, and union operators (colon, space, and comma, respectively) with reference



К чему этот пример
Set firstCellInSheet = _
Workbooks("BOOK1.XLS").Sheets(4).Evaluate("A1")
Типа возвращает УЖЕ пересчитанную ячейку


Да данный вопрос - кто-то может ответить ?
(книга в режиме РУЧНОГО пересчета)
...
Рейтинг: 0 / 0
Excel функция Evaluate
    #39160004
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HOME_X,

По ссылке приводится лишь тот вариант, что Evaluate может вернуть ссылку на ячейку. Но это не говорит о том, что можно в Evaluate объект Range подсовывать для вычисления выражения в этом Range.
По сути статья по ссылке говорит, что Evaluate можно и так использовать:
Код: vbnet
1.
Workbooks("BOOK1.XLS").Sheets(4).Evaluate("A1").Value = 5


а выражение
Код: vbnet
1.
2.
Set firstCellInSheet = _ 
Workbooks("BOOK1.XLS").Sheets(4).Evaluate("A1")


всего лишь присваивает переменной firstCellInSheet ссылку на ячейку А1 указанной книги и листа.
...
Рейтинг: 0 / 0
Excel функция Evaluate
    #39160006
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
The_Pristобъект Range подсовыватьНе так. Текстовый адрес ячейки подсовывать для вычисления в ней выражения.
...
Рейтинг: 0 / 0
Excel функция Evaluate
    #39160100
An12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
HOME_X,

так надо за один раз все связать

rsExes.ActiveConnection = CStr(Hash1 & Hash2 & Hash3 ...)
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Excel функция Evaluate
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]