Thema Datum  Von Nutzer Rating
Antwort
04.06.2014 09:54:17 Christoph
NotSolved
04.06.2014 13:30:08 Gast22298
*****
NotSolved
04.06.2014 13:54:34 Gast86226
NotSolved
04.06.2014 14:22:23 Gast1480
NotSolved
Rot Mehrere Variablen einer Function zurückgeben
06.06.2014 08:36:53 Gast84744
NotSolved
06.06.2014 08:51:29 Gast36702
NotSolved

Ansicht des Beitrags:
Von:
Gast84744
Datum:
06.06.2014 08:36:53
Views:
2428
Rating: Antwort:
  Ja
Thema:
Mehrere Variablen einer Function zurückgeben

Hallo,

wenn die Funktion als Text vorliegt, scheint Evaluate den byRef übergebenen Wert nicht zurückzugeben,
zudem erhält man bei Eingabe von Nichtganzen Zahlen einen TypenFehler;
mit Application.Run könnt's gehen:

Option Explicit

Public Sub Main()  'Main aufrufen....
 Dim dblA As Double, dblB As Double
 Dim strValA As String, strValB As String, _
   strFunc As String
 dblA = 6.867  '8
 dblB = 2.2    '0
 If Not dblA = CDbl(CInt(dblA)) Then
   strValA = Replace$(CStr(dblA), ",", ";", 1)
 Else
   strValA = CStr(dblA)
 End If
 If Not dblB = CDbl(CInt(dblB)) Then
   strValB = Replace$(CStr(dblB), ",", ";", 1)
 Else
   strValB = CStr(dblB)
 End If
strFunc = "fncArrResult" & "(" & strValA & "," & strValB & ")"
Call prcRunFunc(strFunc)
End Sub

Private Sub prcRunFunc(strFunc As String)
Dim vntArrReturn As Variant
vntArrReturn = Application.Run(Mid$(strFunc, 1, InStr(1, strFunc, "(", vbTextCompare) - 1), _
    CDbl(Replace$(Mid$(strFunc, InStr(1, strFunc, "(", vbTextCompare) + 1, InStr(1, strFunc, ",", vbTextCompare) - 1 - InStr(1, strFunc, "(", vbTextCompare)), ";", ",", 1)), _
    CDbl(Replace$(Mid$(strFunc, InStr(1, strFunc, ",", vbTextCompare) + 1, InStr(1, strFunc, ")", vbTextCompare) - 1 - InStr(1, strFunc, ",", vbTextCompare)), ";", ",", 1)))
MsgBox "Ergebnis:  " & CDbl(vntArrReturn(1)) & vbCr & _
     "Fehler:  " & CBool(vntArrReturn(2))
End Sub

Private Function fncArrResult(dblA As Double, dblB As Double) As Variant()
  Dim vntArrTemp(1 To 2) As Variant
  On Error GoTo Sub_Exit
  vntArrTemp(1) = dblA / dblB
  vntArrTemp(2) = False
Sub_Exit:
  If Err.Number <> 0 Then
    vntArrTemp(1) = Empty
    vntArrTemp(2) = True
  End If
  fncArrResult = vntArrTemp
End Function

Gruß,


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
04.06.2014 09:54:17 Christoph
NotSolved
04.06.2014 13:30:08 Gast22298
*****
NotSolved
04.06.2014 13:54:34 Gast86226
NotSolved
04.06.2014 14:22:23 Gast1480
NotSolved
Rot Mehrere Variablen einer Function zurückgeben
06.06.2014 08:36:53 Gast84744
NotSolved
06.06.2014 08:51:29 Gast36702
NotSolved