Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

Здесь нужно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

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

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

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

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

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

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

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

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

Вот пример: здесь функция 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 в 05:42. Причина: Примечание.
Sasha_Smirnov вне форума  
Старый 28.11.2008, 05:42   #5
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,533
По умолчанию

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

Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


08:34.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.