С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
VBA
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
Simply me
235 / 31 / 6
Регистрация: 05.05.2012
Сообщений: 323
Завершенные тесты: 1
1

Функция Evaluate

12.03.2013, 12:36. Просмотров 3360. Ответов 2
Метки нет (Все метки)

Посмотрите, пожалуйста! Присваиваю в переменную значение функции NORMINV
Visual Basic
1
var=Application.Evaluate("NORMINV(RAND(),'Лист1'!$B$2,'Лист1'!$D$2)")
Второй параметр $B$2, третий параметр $D$2. Как исправить, если вместо $B$2 нужно $(B+i)$(2+j), вместо $D$2 нужно $(D+i)$(2+j)? Вообще получается то, что в кавычках у функции Evaluate, это текстовая константа?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.03.2013, 12:36
Ответы с готовыми решениями:

=evaluate(FormulaR1C1)
Добрый день, Коллеги. есть строка типа FormulaR1C1 есть evaluate и нет...

Аналог функции Evaluate
Доброго времени суток уважаемые господа. Задался вопросом существования аналога...

Ошибка Evaluate при вычислении массива
Приветствую Вас, знатоки Excel & VBA! Я уже 3 дня путешествую по просторам...

Evaluate
Всем привет! столкнулся с проблемкой, может гдето не доглядел, помогите)) ...

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

2
IvanOK
693 / 99 / 10
Регистрация: 25.06.2011
Сообщений: 718
12.03.2013, 12:56 2
Цитата Сообщение от Simply me Посмотреть сообщение
(B+i)
вы йдете по колонке или по рядку, потому что ваш пример
Цитата Сообщение от Simply me Посмотреть сообщение
$(B+i)$(2+j)
идет по диагонали и вообще
Цитата Сообщение от Simply me Посмотреть сообщение
$(B+i)
так не пойдет вы конкретние напишите как вы берете даные:
1. по колонке
2. по строке
3. по диаогонале
1
Аксима
5848 / 1268 / 189
Регистрация: 12.12.2012
Сообщений: 991
12.03.2013, 13:00 3
Здравствуйте, Simply me,

Можно исправить так:

Visual Basic
1
var = Application.Evaluate("NORMINV(RAND(),'Лист1'!$" & Chr(Asc("B") + i) & "$" & 2 + j & ",'Лист1'!$" & Chr(Asc("D") + i) & "$" & 2 + j & ")")
Но лучше:

Visual Basic
1
var = Application.WorksheetFunction.NormInv(Rnd, Cells(sm_row + 2, sm_column + 2), Cells(sm_row + 2, sm_column + 4))
так как при i > 22 уже нельзя получить имя нужного столбца с помощью такого простого варианта, как Chr(Asc("D") + i).

С уважением,
Aksima
2
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.03.2013, 13:00

Evaluate и @ismember
объясните почему данная конструкция работает коректно...

Notessession.evaluate
Господа, здравствуйте! Не могу разобраться при вызове метода Evaluate класса...

Evaluate Excel В Lotus
В макросах EXCEL Result =Sheets(2).Evaluate("SUM(F10:F14)") отрабатывает...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru