Hvordan forestiller du dig, at den skal virke? Skal den sætte resultatet ind i en celle? Hvor skal input til opslaget komme fra - hardcodet i VBA makroen eller?
Hvis funktionen skal kunne bruge variabelt input - så er det præcis det, som LOPSLAG gør i forvejen.
Som denne her men den virker bare ikke Dim opslagsVærdi Const slåOpFil = "d:\Eksperten\Splokit_2203\cha.xls" 'tilrettes!!! Dim xls As Object Private Sub CommandButton1_Click() Dim ræk, kol, returkolonne opslagsVærdi = Cells(18, 3) returkolonne = 6
resultat = Lopslag(returkolonne) If resultat <> -1 Then MsgBox ("Opslagsresultat: " + CStr(resultat)) Else MsgBox ("Opslag lykkedes ikke") End If xls.Quit
Set xls = Nothing End Sub Private Function Lopslag(returK) Set xls = CreateObject("excel.application")
With xls .Workbooks.Open slåOpFil .ActiveWorkbook.Sheets("Ark1").Activate
For ræk = 2 To 100 If .Cells(ræk, 1) = opslagsVærdi Then Lopslag = .Cells(ræk, returK) Exit Function End If Next ræk
Det ser ud som om at du mangler et argument til din Lopslag function: Prøv med: Private Function Lopslag(opslagsVærdi, returK) og i din sub returK = 6 (i stedet for returkolonne) resultat = Lopslag(opslagsVærdi, returK)
Prøv også at lægge den ind som argument i din funktion. Altså: Private Function Lopslag(opslagsVærdi, returK, slåOpFil) og i din sub: resultat = Lopslag(opslagsVærdi, returK, slåOpFil)
den laver ingen fejl men den laver så heller ikke noget!?
Kan det laves så den på "T.xls" Ark "1" hvis "C3:C62" = værdi søg på "G:\DOKUMENTER\K\N\cha\cha.xls" ark "Char" "A:A" Hvis den findes retuner værdien fra "H:H" I "F3:F62" på "T.xls" Ark "1" det skal gøres ud for hver celle i "C2:C62"
Så hvis C15 = test og på Cha.xls/char/A49=Test Retuner H49 Til T.xls/1"F15"
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.