Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Fehlermeldung 'Argumenttyp ByRef unverträglich"

282 views
Skip to first unread message

Detlef Lechner

unread,
Mar 26, 2004, 5:45:45 AM3/26/04
to
Hallo Newsgroup,

ich erhalte bei der folgenden VBA-Routine
-------------------
Option Explicit
Sub Minimax(ByVal a As Double, ByVal b As Double, _
ByVal c As Double, ByRef min As Double, ByRef max As Double)
max = a
If b > max Then max = b
If c > max Then max = c

min = a
If b < min Then min = b
If c < min Then min = c

End Sub

Sub TesteMiniMax()
Dim a, b, c, min1, max1 As Double
a = Cells(2, 4)
b = Cells(3, 4)
c = Cells(4, 4)
Call Minimax(a, b, c, min1, max1)
Cells(7, 4) = max1
Cells(8, 4) = min1
End Sub
--------------------
in der 4. Zeile von unten bei 'min1' die Fehlermeldung:
"Fehler beim Kompilieren: Argumenttyp ByRef unverträglich"
und zermartete mir den Kopf:
Womit ist der min1-Typ 'Double' nicht verträglich?
Kann mir das jemand sagen?

MfG
Detlef Lechner

Michael Schwimmer

unread,
Mar 26, 2004, 8:01:22 AM3/26/04
to
Hallo Detlef

"Detlef Lechner" schrieb:


> Dim a, b, c, min1, max1 As Double

du deklarierst vier Variantvariablen und eine Variable vom Typ Double!

Die Variable min1 ist somit Variant und im Kopf der Prozedur verlangst
du einen Double, und den als Referenz (ByRef). Es darf gar nicht
klappen, an dieser Stelle einen Variant zu übergeben, einigen
Programmierern würde sonst der Himmel auf den Kopf fallen.
Entweder du verlangst im Prozedurkopf ByVal, dann wird's die
automatische Typenumwandlung schon richten, oder du übergibst einen
Double. Dann musst du aber anders deklarieren, zum Beispiel so:

Dim a As Double, b As Double, c As Double
Dim min1 As Double, max1 As Double

MfG
Michael

--
-------------------------------------------
Michael Schwimmer
Home neu: http://michael-schwimmer.de

Detlef Lechner

unread,
Mar 26, 2004, 8:30:41 AM3/26/04
to

"Michael Schwimmer" <schw...@t-online.de> schrieb

>
> du deklarierst vier Variantvariablen und eine Variable vom Typ Double!
>
Ja, stimmt. Das war der Fehler!
Danke für den Tipp!
Vergnügtes Wochenende!
(Bei Gelegenheit werde ich einmal länger unter den Tiefen
Deiner Homepage surfen.)

Detlef

Michael Schwimmer

unread,
Mar 26, 2004, 12:34:14 PM3/26/04
to
Hallo Detlef,

"Detlef Lechner" schrieb:


> > du deklarierst vier Variantvariablen und eine Variable vom Typ
> > Double!
> Ja, stimmt. Das war der Fehler!
> Danke für den Tipp!

freut mich, wenn es dir weitergeholfen hat. Und Danke für die
Rückmeldung.


> Vergnügtes Wochenende!

Dir auch!

> (Bei Gelegenheit werde ich einmal länger unter den Tiefen
> Deiner Homepage surfen.)

Verirr dich nur nicht ;-)

0 new messages