Библиотеку swedllХХ нет необходимости регистрировать в системе, это не COM, не ActiveX или что-то ещё, это обычная Си библиотека.
Поэтому требований к ОС нет, есть требования к MSO, я не помню, честно говоря, где у него кнопка написано х86 или х64, я обычно нажимаю три пальца и в диспетчере задач если вижу excel.exe*32 значит 32 ) и сойдет обычная swedll32.dll
Если все три источника и составных части х64 и что-то не работает, тогда жалуйтесь.
Кстати, если вы про VB, а не VBA, так это вообще несколько не в тему, тут всё таки Excel обсуждаем.
Библиотеку swedllХХ нет необходимости регистрировать в системе, это не COM, не ActiveX или что-то ещё, это обычная Си библиотека.
Поэтому требований к ОС нет, есть требования к MSO, я не помню, честно говоря, где у него кнопка написано х86 или х64, я обычно нажимаю три пальца и в диспетчере задач если вижу excel.exe*32 значит 32 ) и сойдет обычная swedll32.dll
Если все три источника и составных части х64 и что-то не работает, тогда жалуйтесь.
Кстати, если вы про VB, а не VBA, так это вообще несколько не в тему, тут всё таки Excel обсуждаем.
Здравствуйте,
проблема как раз в запуске библиотеки эфемерид в excel. Программа работае в Ексель 2007 и не работает на 2013. Кто-то может отписаться, как запускать эфемериды в Ексель 2013?
По идее, должно давать сообщение чётко определяющее, что файл библиотеки не найден.
Файл должен лежать в той же папке что и XLS (XLSM), можно положить его также в папку Windows или Windows\System32
По идее, должно давать сообщение чётко определяющее, что файл библиотеки не найден.
Файл должен лежать в той же папке что и XLS (XLSM), можно положить его также в папку Windows или Windows\System32
Все это сделано изначально. Юлианская дата считается, долгота солнца - нет. В процедуре расчета долготы солнца задействована библиотека, к которой, по видимому, VBA не может получить доступ
Добрый день.
Пытаюсь подключить эфемериды, но что-то не получается.
1. Скопировала swedll32.dll в Windows/System32
2. В экселе в модуле поменяла путь к эфемеридам (и к вашему sweph пробовала, и к эфемеридам в папки Зет)
В итоге эксель и не ругается, но и вместо расчета выдает №ЗНАЧ!
Подскажите, в чем проблема?
В итоге эксель и не ругается, но и вместо расчета выдает №ЗНАЧ!
Подскажите, в чем проблема?
Здравствуйте!
У меня была та же проблема.
Причина сообщения #ЗНАЧ! в моем случае оказалась в пропуске секунд при вводе данных в функцию jday. Проверьте - может, Вы случайно что-то пропускаете где-то?
Успехов! Отпишитесь, как заработало :)
Здравствуйте!
У меня была та же проблема.
Причина сообщения #ЗНАЧ! в моем случае оказалась в пропуске секунд при вводе данных в функцию jday. Проверьте - может, Вы случайно что-то пропускаете где-то?
Успехов! Отпишитесь, как заработало :)
Если вам все-таки нужно знать склонение/прямое восхождение планеты, добавим в функцию plc 4 строки (я могу ошибаться, но, по моему, про это вы спрашивали):
If CType = "MEq" Then iflag = SEFLG_EQUATORIAL + SEFLG_MOSEPH
If CType = "SEqR" Then iflag = SEFLG_RADIANS + SEFLG_EQUATORIAL + SEFLG_SWIEPH
If CType = "MEq" Then iflag = SEFLG_EQUATORIAL + SEFLG_MOSEPH
If CType = "MEqR" Then iflag = SEFLG_RADIANS + SEFLG_EQUATORIAL+ SEFLG_MOSEPH
Т.Е.:
Public Function Plc(ByVal JD As Double, ByVal pl As Variant, Optional ByVal CType, Optional ByVal XPos) As Double
Dim x(6) As Double
Dim cusp(13) As Double
Dim ascmc(10) As Double
swe_set_ephe_path ("D:\SWESEMPHES")
iflag = SEFLG_SPEED + SEFLG_MOSEPH
If pl > 99990 And pl < 100018 Then
asss = swe_houses_ex(JD, iflag, CType, XPos, asc("P"), cusp(0), ascmc(0))
csp = pl - 99990
Plc = cusp(csp)
Call swe_close
Exit Function
End If
If CType = "Def" Then iflag = SEFLG_SPEED + SEFLG_MOSEPH
If CType = "STrop" Then iflag = SEFLG_TRUEPOS + SEFLG_SWIEPH
If CType = "SSid" Then iflag = SEFLG_SIDEREAL + SEFLG_SWIEPH
If CType = "SHel" Then iflag = SEFLG_HELCTR + SEFLG_SWIEPH
If CType = "SXYZ" Then iflag = SEFLG_XYZ + SEFLG_SWIEPH
If CType = "SRad" Then iflag = SEFLG_RADIANS + SEFLG_SWIEPH
If CType = "SEq" Then iflag = SEFLG_EQUATORIAL + SEFLG_SWIEPH
If CType = "SEqR" Then iflag = SEFLG_RADIANS + SEFLG_EQUATORIAL + SEFLG_SWIEPH
If CType = "MTrop" Then iflag = SEFLG_TRUEPOS + SEFLG_MOSEPH
If CType = "MSid" Then iflag = SEFLG_SIDEREAL + SEFLG_MOSEPH
If CType = "MHel" Then iflag = SEFLG_HELCTR + SEFLG_MOSEPH
If CType = "MXYZ" Then iflag = SEFLG_XYZ + SEFLG_MOSEPH
If CType = "MRad" Then iflag = SEFLG_RADIANS + SEFLG_MOSEPH
If CType = "MEq" Then iflag = SEFLG_EQUATORIAL + SEFLG_MOSEPH
If CType = "MEqR" Then iflag = SEFLG_RADIANS + SEFLG_EQUATORIAL + SEFLG_MOSEPH
If XPos = 1 Or XPos = "Lat" Then Plc = x(1)
If XPos = 2 Or XPos = "Lon" Then Plc = x(2)
If XPos = 3 Or XPos = "Dis" Then Plc = x(3)
If XPos = 4 Or XPos = "SpdLat" Then Plc = x(4)
If XPos = 5 Or XPos = "SpdLon" Then Plc = x(5)
If XPos = 6 Or XPos = "SpdDis" Then Plc = x(6)
If XPos = 7 Or XPos = "Er" Then Plc = serr$
DoEvents
End Function
Тогда в параметр CType вводим SEq или SEqR (SEq - выводит результат в градусах, а SEqR - в радианах)
Если в параметр XPos ввести 0- функция выдаст прямое восхождение, а если 1 - склонение (или наоборот, сам еще не понял )
Подскажите, а как найти прямое восхождение и склонение куспидов домов?