Zdefiniowanie funkcji arcus sinus, arcus cosinus i arcus tangens

0

Jak mogę zdefiniować funkcję arcus sinus, arcus tangens i arcus cosinus w Vba?

0

A po co chcesz to definiować? Nie możesz użyć gotowych wbudowanych funkcji?

0

Ponieważ przy wpisaniu funkcji mam komunikat:
screenshot-20181030141729.png

0

Dzięki, widziałem ten post, ale z tego

Answer = Application.Worksheetfunction.Acos(Argument)

Nie chcę korzystać ponieważ na razie program piszę w vba, ale chcę go przenieść do cada, a tam nie będzie już to działać (tak sądzę).

Z kolei tego

Arccos(X) = Atn(-X / Sqr(-X * X + 1)) + 2 * Atn(1)

nie ogarniam. W sensie nie wiem co to są te X, czy ja je definiuje, czy pod to daję swoje równanie/wartość? Poza tym w tym równaniu jest Atn, który zapewne też nie jest zdefiniowany.

Spotkał się ktoś z takim problemem?

0

Piszę kolejny komentarz ponieważ nie widzę opcji edycji.

Znalazłem taki kod:

  Option Explicit Public Const Pi As Double = 3.14159265358979 Private Function ArcSin(X As Double) As Double If Abs(X) = 1 Then 'The VBA Sgn function returns an integer (+1, 0 or -1), 'representing the arithmetic sign of a supplied number. ArcSin = Sgn(X) * Pi / 2 Else 'Atn is the inverse trigonometric function of Tan, 'which takes an angle as its argument and returns 'the ratio of two sides of a right triangle ArcSin = Atn(X / Sqr(1 - X ^ 2)) End If End Function

oraz taką funkcję:

Public Function Asin() As Double 
  Const Pithag = 3.14159265359 
  Const radeg = 180 / Pithag 
  Avalue = CDbl(Val(Me.TextBox7.Value)) 'MAJOR DIAMETER 
  Bvalue = CDbl(Val(Me.TextBox4.Value)) 'MINOR DIAMETER 
  Cvalue = CDbl(Val(Me.TextBox2.Value)) 'U-BOLT EFFECTIVE LENGTH 
  Adj = CDbl(Cvalue / 2) 
  Opp = CDbl((Avalue - Bvalue) / 2) 
  Hyp = CDbl(Sqr(Opp ^ 2 + Adj ^ 2)) 
  'INVSIN 
  x = Opp / Hyp 
  Ang = Atn(x / Sqr(-x * x + 1)) * radeg 
  Ang2 = CDbl(90 - Ang) 
  Asin = Round(Ang2, 4) 
  End Function

Wpisałem powyższą funkcję do vba, ale gdy wpisuję działanie z Asin pod przyciskiem to nadal wyskakuje mi błąd, że taka funkcja nie istnieje. Przypominam tylko, że nie korzystam z excela lecz z AutoCada, w którym nie działa funkcja worksheet.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0