Hej! Jag har en uträkning som hämtar sina uppgifter från en strängvektor och en textruta. Vilken vektor den hämtar uppgifter från beror på ett val som görs i en listbox. Koden nedan fungerar, men jag vill ha uträkningen som en funktion i en modul. Hur ska jag skriva koden för detta? Om jag förstår dig rätt är detta ett exempel på vad du söker: Kan visa dig två varianter av funktioner. Låt oss ta och göra den mest bekväma för ditt fall. En ogenerell funktion som bara kan användas av ditt formulär:Funktioner
If frmOmvandling.cboTyp.ListIndex = 0 Then
Summa = FormatNumber(Val(vStr1(frmOmvandling.cboFran.ListIndex))/Val(vStr1(frmOmvandling:cboTill.ListIndex) * Val(frmOmvandling.txtTextIn.Text),8)
End If
(det ska vara en rad mellan If och End If)
Sedan har jag en likadan If-sats med en annan strängvektor.
Hoppas det går att förstå vad jag menar.
Tacksam för svar.Sv: Funktioner
<code>
function Berakning(MyTextBox1 as TextBox, MyTextBox2 as TextBox) as Long
Berakning = val(MyTextBox1) * val(MyTextBox2)
end function
</code>
Resten får du klura ut självSv: Funktioner
<code>
Friend Function DoCalc(Value as frmOmvandling)
Dim dblFran As Double
Dim dblTill As Double
Dim dblIn As Double
dblFran = CDbl(vStr1(Value.cboFran.ListIndex))
dblTill = CDbl(vStr1(Value.cboTill.ListIndex))
dblIn = CDbl(Value.txtTextIn.Text)
If Value.cboTyp.ListIndex = 0 Then
DoCalc = FormatNumber(dblFran / dblTill * dblIn, 8)
End If
End function
X=DoCalc(Me)
X=DoCalc(frmOmvandling)
</code>
Eller en generell funktion:
<code>
Public Function DoCalc(ByVal Fran As Double, ByVal Till As Double, ByVal In As Double)
DoCalc = FormatNumber(dblFran / dblTill * dblIn, 8)
End function
If frmOmvandling.cboTyp.ListIndex = 0 Then
X=DoCalc(vStr1(frmOmvandling.cboFran.ListIndex), vStr1(frmOmvandling.cboTill.ListIndex), frmOmvandling.txtTextIn.Text)
End If
</code>