Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1776to1780
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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

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

33 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige