Kezdőlap › Fórumok › Excel programozás › .xlam-ban vlookup használata
- This topic has 14 hozzászólás, 2 résztvevő, and was last updated 7 years, 3 months telt el by horvimi.
-
SzerzőBejegyzés
-
2017-06-07-12:59 #3709
Sziasztok!
Van egy bajom: nem akar menni ez a függvény, amit zy.xlam függvénybe írtam:
Public Function besor1(hirdszektkod As String)
Dim tabla As RangeSet ws = Sheets(“Besor”)
ws.Activate
Set tabla = Range(“A1:D10000”)besor1 = ws.Application.WorksheetFunction.VLookup(hirdszektkod, tabla, 2, False)
End Function
#ÉRTÉK! hibát ír ki?
Mi lehet a baja?
2017-06-07-20:02 #3710Szia!
Ha jól sejtem, akkor UDF-ként akarod használni.
Így a fókuszt nem viheted el az aktív celláról.
Tehát a ws.Activate lehet az egyik a baja.
A másik, hogy olyan nincs, hogy ws.Application.worksheetfunction. ws nélkül kell használni.Harmadik gondolatom, hogy vajon ennek mi az isten értelme van azzal szemben, hogy beírsz egy VLOOKUP függvényt a cellába? Hacsak nem mégsem UDF. DE akkor nem írhat ki #ÉRTÉK hibát.
Imre
- A hozzászólás módosításra került: 7 years, 3 months telt el-horvimi.
2017-06-09-14:47 #3716Szia!
Értelme az lenne, hogy a leggyakrabban használt keresésekhez nem kellene nyitogatni fájlokat, hanem függvényként jelen lennének. És ez 1 helyen lenne, amit több felhasználó használna bővítményként. (A listát kell frissíteni rendszeresen, így viszont mindenkinél naprakész lenne.)
2017-06-09-20:40 #3717OK.
És a fentiek szerint próbáltad javítani?2017-06-12-10:13 #3720Szia!
Igen, kipróbáltam, de nem megy így se.
Azért kérdem, hogy lehet-e így megcsinálni, hogy ne ciklusokkal kelljen keresni a táblákban.
Egyéb ötlet esetleg?2017-06-13-01:19 #3725Szia!
Kipróbáltam, nekem így működik:
Public Function kikeres(id) As Variant Dim tabla As Range Set tabla = Sheets("nevsor").Range("A1:D10000") kikeres = Application.WorksheetFunction.VLookup(id, tabla, 2, False) End Function
Ebben nincs most hibakezelés, azaz hogy ha nincs találat, akkor mi van.
imre
- A hozzászólás módosításra került: 7 years, 3 months telt el-horvimi.
2017-06-15-11:17 #3731Köszi!!!!!!!!!!!!
Így már megy.
Majd még .xlamként is kipróbálom, de xlsm-ben már jó!
Mégegyszer köszi!2017-06-15-12:09 #3733Szia!
Sajnos, ha lementem .xlam-ban, már nem működik.
Mi lehetne a megoldás?2017-06-15-23:30 #3743Nekem simán megy.
A bővítményt bekapcsoltad?
A teszt munkafüzetben létezik „nevsor” nevű lap? (Ez ugye bele van drótozva.Imre
2017-06-19-11:40 #3756Szia!
Tehát .xlsm formátumban működik.
Ha lementem bővítményként, aktiválom a bővítményt, akkor #ÉRTÉK hibát ad.
A függvények neve is megjelenik, csak nem működnek.
Az adatvédelmi központban is engedélyezve vannak a makrók, a bővítmények sincsennek letiltva.
Na, még megpróbálom másik gépről is, lehet, hogy az Excelem nem jól telepedett.
Valami ötlet még? 🙂2017-06-19-13:12 #3757Nem lehet, hogy az a baja, hogy ha bővítményként mentem, akkor meg kellene adni az útvonalat is a munkalaphoz?
Ugyanis ha bemásolok egy ugyanolyan nevű munkalapot valamelyik fájlba, akkor már működik a .xlam függvény!
Azt hiszem, ez lesz a megoldás!2017-06-19-14:31 #3758Hogyan kellene hivatkozni a xlam függvényre?
Beégessem? Mert így nem jó:Public Function fioknev(id) As Variant
Dim tabla As Range
Dim hossz As Integer
id = id & „”
wb = ActiveWorkbook.Path
wbn = wb & „\Function2.xlam”hossz = Len(id)
If hossz = 2 Then
Set wbb = wbn
Set tabla = Sheets(„Fiok”).Range(„C1:L200”)
fioknev = Application.WorksheetFunction.VLookup(id, tabla, 2, False)
End IfIf hossz = 8 Then
Set wbb = wbn
Set tabla = Sheets(„Fiok”).Range(„A1:L200”)
fioknev = Application.WorksheetFunction.VLookup(id, tabla, 4, False)
End IfIf hossz > 8 Then
id = Left(id, 8)
Set wbb = wbn
Set tabla = Sheets(„Fiok”).Range(„A1:L200”)
fioknev = Application.WorksheetFunction.VLookup(id, tabla, 4, False)
End IfEnd Function
2017-06-19-18:24 #3759Szia!
Jól elvagy itt magaddal 🙂
A bővítmény függvényei natív függvénynek látszódnak, nem kell semmilyen útvonal vagy ilesmi.
A fenti kódban a wb=, wbn=, set wbb= sorok nem kellenek, nem is használod semmire őket.Ezt a mondatot nem értem:
„Ugyanis ha bemásolok egy ugyanolyan nevű munkalapot valamelyik fájlba, akkor már működik a .xlam függvény!”A függvénybe bele van drótozva, hogy a munkafüzet, emiben fut, tartalmaz egy „Fiok” nevű lapot. Itt fontos, hogy számít a kis és nagybetű különbség.
Imre
2017-06-20-11:37 #3760Szia!
JA, elvan a gyerek… Igen, mert jó lenne pontot tenni erre, csak nem sikerül.
Szóval kezdem elölről, mert lehet, hogy nem is bővítmény lesz a jó megoldás.
Tehát a cél az lenne, hogy több felhasználónak legyen egy függvény, ami elérhető.
Gyakorlatilag egy FKERES, csak egyszerűsíteni szeretném nekik.
És a másik, hogy a mögöttes táblában csak egy valakinek kellene frissíteni az adatokat, de mindig kéznél lenne.
Egyszerűbb lenne, ha átpakolnám nekik az egészet Querybe, és csak a lekérdezésfájlokat kellene nyomkodniuk, dehát, majd.2017-06-20-12:32 #3761Ha bővítmény, akkor is fel kell tenni minden gépre.
Sima xlsm-ben működik igaz?
Akkor miért nem teszed mindenkinek a Personal.XLSM-be? -
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.