Как в Excel 2000, XP воспользоваться функциями из надстройки "Пакет анализа", причём, без подключения этой надстройки?

Если у Вас возникла необходимость в программном использовании функций, которые, как правило, доступны, только после подключения надстройки "Пакет анализа", но, при этом, Вы не хотите подключать эту надстройку или открывать файл ATPVBAEN.XLA, то начиная с Excel 2000 для решения этой задачи можно использовать OWC - Office Web Components

Несколько примеров использования:

  1. Получение случайного числа от -100 до 100 =СЛУЧМЕЖДУ(-100; 100)
    code: #vba
    iResult = CreateObject("OCATP.OCATP.1").RANDBETWEEN(-100, 100)
  2. Получение даты, отстоящей от текущей даты, на один месяц =ДАТАМЕС(СЕГОДНЯ(); 1)
  3. И получение последнего дня текущего месяца =КОНМЕСЯЦА(СЕГОДНЯ(); 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: #vba
    Dim iOWCATP As New MSOWCFLib.OCATP
    Dim iDate As Date, iResult As Date
    iDate = Now 'Date
    iResult = iOWCATP.EOMONTH(iDate, 0)
    MsgBox "Последний день этого месяца : " & iResult
    code: #vba
    Dim 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

Поделиться:

Похожие статьи: