2012-04-23 4 views
2

Мне нужно иметь возможность выполнять любые встроенные функции (например, «sum» или «len») из VBA (MS Excel).Выполнение встроенных функций из VBA (Excel)

Одним из ограничений, которые у меня есть, является то, что я не могу передавать диапазоны ячеек в качестве аргументов для этих функций. Вместо этого я должен иметь возможность использовать строгие значения.

Я хочу использовать следующее выражение SUM (1, 2), которое должно возвращать 3, тогда как следующая версия SUM («A1: A2») не будет работать для меня.

Мне удалось создать некоторую функцию, которая анализирует мой предыдущий ввод и делает его состоящим из списка значений (как, например, выше, он сделал ввод пользователя «A1: A2» похожим на массив чисел, состоящий из двух значения).

Итак, может ли кто-нибудь дать мне пример использования встроенной функции, которая получает список значений (а не только диапазон ячеек)?

Я пробовал следующий код, но по какой-то неизвестной причине мне не удалось заставить его работать (я продолжаю получать ошибку 1004, говоря: не удается запустить макрос «СУММ». Макрос может быть недоступен в это учебное пособие или все макросы могут быть отключены):.

Application.Run "SUM", 2, 2 

Некоторые ценные советы, которые помогут найти решение этой проблемы будет очень цениться.

+2

'Некоторые ценные советы, которые помогут ....' Существует волшебный ключ в Excel , Удивительно, что вы можете нажать его из рабочего листа и из редактора VBA :) Ключ «F1» –

+0

@SiddharthRout Нажатие F1 в редакторе макросов просто приводит вас к веб-странице, в которой говорится, что F1 не работает. – Crashworks

ответ

3

Чтобы использовать встроенный, Excel, функция рабочего листа, вам нужно сделать что-то вроде следующего:

Application.WorksheetFunction.Sum(2,2) 
+0

ok, что вы скажете мне, если я скажу, что имя функции и клиент аргументов отправляют меня с другой стороны? Мой клиент может отправить мне имя функции как строку и аргумент для функции как диапазон или массив. Хорошо, я могу использовать отражение, но я не уверен, что вся функция реализуется в WorksheetFunction. И т. Д. что я должен делать, если smb посылает мне функцию «Лен»? – nhusnullin

+0

Извините, я не знаю, что вы имеете в виду, но мы, похоже, рассмотрели ваш оригинальный вопрос. – markblandford

Смежные вопросы