Как в Excel 2000, XP воспользоваться функциями из надстройки "Пакет анализа", причём, без подключения этой надстройки?
Если у Вас возникла необходимость в программном использовании функций, которые, как правило, доступны, только после подключения надстройки "Пакет анализа", но, при этом, Вы не хотите подключать эту надстройку или открывать файл ATPVBAEN.XLA, то начиная с Excel 2000 для решения этой задачи можно использовать OWC - Office Web Components
Несколько примеров использования:
- Получение случайного числа от -100 до 100 =СЛУЧМЕЖДУ(-100; 100)
code: #vba
iResult = CreateObject("OCATP.OCATP.1").RANDBETWEEN(-100, 100)
- Получение даты, отстоящей от текущей даты, на один месяц =ДАТАМЕС(СЕГОДНЯ(); 1)
- И получение последнего дня текущего месяца =КОНМЕСЯЦА(СЕГОДНЯ(); 0)
code: #vba
With CreateObject("OCATP.OCATP.1") iResult1 = .RANDBETWEEN(-100, 100) iResult2 = CDate(.EDATE(Date, 1)) iResult3 = CDate(.EOMONTH(Date, 0)) End With
Если же Вам необходимы подсказки к функциям (количество аргументов, их тип и обязательность), то используйте раннее связывание. Для этого, в редакторе VBA в меню Tools выберите команду References и подключите Microsoft Office Web Components Function Library (MSOWCF.DLL)
code: #vbaDim iOWCATP As New MSOWCFLib.OCATP Dim iDate As Date, iResult As Date iDate = Now 'Date iResult = iOWCATP.EOMONTH(iDate, 0) MsgBox "Последний день этого месяца : " & iResult
code: #vbaDim iDate As Date, iResult1#, iResult2#, iResult3# With New MSOWCFLib.OCATP iDate = #1/31/2007# '39113 iResult1 = .EDATE(CDbl(iDate), 1) iResult2 = .CONVERT(451, "F", "C") iResult3 = .WEEKNUM(CDbl(Date), 2) MsgBox "Дата, отстоящая на один месяц от " & iDate & " это " & CDate(iResult1) MsgBox "451 по Фаренгейту, а в цельсиях, это " & iResult2 MsgBox "Сейчас идёт неделя# " & iResult3 End With
Если найти OWC не удаётся, а применение первых советов, приводит к возникновению ошибки, то, по всей видимости, на Вашем компьютере просто нет указанного компонента.
Актуально только для MS Excel 2000, XP