Avatar billede tjensen Nybegynder
31. januar 2008 - 21:03 Der er 7 kommentarer og
1 løsning

Private sub

Hej,

Kan ikke rigtig finde ud af og få en private sub til at sende en værdi retur. Her er mit forsøg:

SubFind ()
    Kto = "budget"
    Konto = FindKto(Kto)
    MsgBox("Din Budget konto er: " & Konto)
End Sub

Private FindKto(kto)
    Sheets("Data").Select
    Data = Range("A1").CurrentRegion
    For y = 1 To UBound(Data, 1)
        If Cur = Data(y, 1) Then
            'Return (y, 2)
    End If
    Next
End Sub
Avatar billede dk_akj Nybegynder
31. januar 2008 - 21:15 #1
Private FindKto(kto) as string

  Sheets("Data").Select
    Data = Range("A1").CurrentRegion
    For y = 1 To UBound(Data, 1)
        If Cur = Data(y, 1) Then
            FindKto= cells(y,2).value
end if

End Sub


//akj
Avatar billede tjensen Nybegynder
31. januar 2008 - 22:51 #2
Ja, lige præcis. Det ville virke fint.
Men nu er der flere steder jeg skal finde konti, så vil genre have den ud i en selvstændig funktion og ligge.
Avatar billede tjensen Nybegynder
31. januar 2008 - 23:05 #3
sorry, kiggede alt for hurtig!
Avatar billede tjensen Nybegynder
31. januar 2008 - 23:06 #4
hehe, ja. og det hedder ikke Private Sub FindKto?
Spørge måske flabbet/dumt. Men vil lige være helt sikker.

Kan først teste det i morgen.
Avatar billede gammelhat Nybegynder
31. januar 2008 - 23:12 #5
vbscript har sub og function. Kun function kan returnere en værdi

"return værdi" svarer til

function_navn = værdi
Exit Function
Avatar billede dk_akj Nybegynder
02. februar 2008 - 10:47 #6
jo, som gammelhat skriver skal det selvf. være private function findkto(kto)

//akj
Avatar billede bak Seniormester
02. februar 2008 - 11:42 #7
der er vel mulighed for både finktion og sub

med funktion

Sub Find1()
    kto = "budget"
    konto = FindKto1(kto)
    MsgBox ("Din Budget konto er: " & konto)
End Sub

Private Function FindKto1(Cur)
    data = Sheets("Data").Range("A1").CurrentRegion
    For y = 1 To UBound(data, 1)
        If Cur = data(y, 1) Then
            FindKto1 = data(y, 2)
            Exit Function
        End If
    Next
End Function


Og med en sub

Sub Find()
    kto = "budget"
    FindKto kto, konto
    MsgBox ("Din Budget konto er: " & konto)
End Sub

Private Sub FindKto(Cur, EnKonto)
    data = Sheets("Data").Range("A1").CurrentRegion
    For y = 1 To UBound(data, 1)
        If Cur = data(y, 1) Then
            EnKonto = data(y, 2)
            Exit Sub
        End If
    Next
End Sub

I subben skal man bare huske at medsende en variabel til returværdien
Avatar billede tjensen Nybegynder
17. juli 2008 - 15:26 #8
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester