Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 18.11.2008, 18:00   #1
ibrahimov
Новичок
Джуниор
 
Регистрация: 18.11.2008
Сообщений: 1
Восклицание как написать на vba стандарные функции excel

Может кто-то знает как можно на vba написать такие стандартные функции экселя как
ДОЛЯГОДА (у меня даты почему-то как-то неправильно вычитаются, как если бы я использовал эту стандартную функцию)
СУММ (не знаю как сделать так, что бы количество аргументов функции не было фиксированным)

Мне нужно не коды программ функций, а знать как решить те проблеммы, которые я указал в круглых скобках
ibrahimov вне форума
Старый 27.11.2008, 21:50   #2
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

http://www.proklondike.com/contentview.php?content=487

Там в том числе много полезного про работу с датами и массивами.

В частности, для суммирования чисел можно использовать динамический массив. А, например, для Word существует конструкция
Selection.Calculate,
возвращающая (в переменную) СУММУ чисел из выделенного вами фрагмента текста (при этом дробные числа — через точку, если не ошибаюсь).

Последний раз редактировалось Sasha_Smirnov; 27.11.2008 в 22:24. Причина: Уточнение.
Sasha_Smirnov вне форума
Старый 27.11.2008, 22:23   #3
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

Уточню: при языке "Английский" в региональных стандартах.
При языке "Русский", "Французский" и нек. других
Selection.Calculate
считает дробными числа с запятой (а не с точкой) внутри.
Sasha_Smirnov вне форума
Старый 28.11.2008, 04:36   #4
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

Вот пример: здесь функция SummaChisel — с*переменным количеством аргументов. Пример отлажен.

Option Explicit
Sub AnyProg()
MsgBox "Сумма чисел = " & SummaChisel(-1, -2, 3, 0.5)
End Sub


Function SummaChisel(ParamArray m() As Variant)
Dim i As Long
For i = 0 To UBound(m)
SummaChisel = SummaChisel + m(i)
Next
End Function

Последний раз редактировалось Sasha_Smirnov; 28.11.2008 в 04:42. Причина: Примечание.
Sasha_Smirnov вне форума
Старый 28.11.2008, 04:42   #5
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

Примечание. MsgBox выдаёт здесь (вы не поверите...):
"Сумма чисел = 0.5"
Sasha_Smirnov вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
VBA Excel Slicker Помощь студентам 4 04.11.2008 17:14
Программа на VBA в виде функции пользователя Strel'nikova Помощь студентам 3 31.10.2008 13:53
Как с помощью Microsoft Excel написать программу, позволяющую перемещать предмет на плоскости? Vova4kA Microsoft Office Excel 10 28.05.2008 14:18
Бага или фича функции Replace Function (VBA)? Alkaline Microsoft Office Excel 3 27.12.2007 11:26
Простой максор. Excel. Как написать. prosims Microsoft Office Excel 7 07.06.2007 17:06