Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Argument ist nicht optional

Forumthread: Argument ist nicht optional

Argument ist nicht optional
25.08.2020 10:42:12
Alex
Hallo, ich möchte drei Funktionen aus der linearen Algebra programmieren. Die Vektorlänge ("Betrag") funktioniert einwandtfrei, beim ausführen von Skalarprodukt (sProdukt) und Vektorwinkel (vWinkel) wird allerdings die Fehlermeldung "Argument nicht optional" angezeigt. Meine VBA Kenntnisse beziehen sich hauptsächlich auf diese Grundformeln und For-Next Schleifen. Kann mir da jemand weiterhelfen?
Die Formel Skalarprodukt könnte ich zwar auch mit Summenprodukt in der Excel-Arbeitsmappe lösen, würde jedoch gerne alles einmal in VBA einheitlich haben, damit ich die Funktion für vWinkel nutzen kann.
Function Betrag(r As Range)
'Vektorlänge
b = WorksheetFunction.Index(r, 1, 1)
c = WorksheetFunction.Index(r, 2, 1)
d = WorksheetFunction.Index(r, 3, 1)
e = Sqr(b ^ 2 + c ^ 2 + d ^ 2)
Betrag = e
End Function

Function sProdukt(r As Range, n As Variant)
'Skalarprodukt
b = WorksheetFunction.Index(r, 1, 1)
c = WorksheetFunction.Index(r, 2, 1)
d = WorksheetFunction.Index(r, 3, 1)
e = WorksheetFunction.Index(n, 1, 1)
f = WorksheetFunction.Index(n, 2, 1)
g = WorksheetFunction.Index(n, 3, 1)
h = b * e + c * f + d * g
Betrag = h
End Function

Function vWinkel(r As Range, n As Range)
'kleinster Winkel zweier Vektoren
b = WorksheetFunction.Index(r, 1, 1)
c = WorksheetFunction.Index(r, 2, 1)
d = WorksheetFunction.Index(r, 3, 1)
e = WorksheetFunction.Index(n, 1, 1)
f = WorksheetFunction.Index(n, 2, 1)
g = WorksheetFunction.Index(n, 3, 1)
h = WorksheetFunction.Acos((Modul1.sProdukt(r, n)) / ((Modul1.Betrag(r)) * (Modul1.Betrag(n))))
Betrag = h
End Function

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Argument ist nicht optional
25.08.2020 10:52:51
Rudi
Hallo,
wie rufst du die Funktionen denn auf?
Du muss sowohl r als auch n angeben.
Gruß
Rudi
AW: Argument ist nicht optional
25.08.2020 10:57:58
Rudi
das muss vWinkel=h heißen!!!
Function vWinkel(r As Range, n As Range)
'kleinster Winkel zweier Vektoren
h = WorksheetFunction.Acos((Modul1.sProdukt(r, n)) / ((Modul1.Betrag(r)) * (Modul1.Betrag(n)))) _
vWinkel = h
End Function

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige