Excel makró listbox értékátadás

Excel makró listbox értékátadás
2020-09-09T09:53:39+02:00
2020-09-09T15:04:04+02:00
2022-10-15T21:26:22+02:00
Logred
Sziasztok!

Excel táblához létrehoztam több listbox-ot:
ListBox1
ListBox2
ListBox3
...
Ezekhez írtam egy függvényt, amit bármelyiken le szeretnék futtatni:

Public Function TömbFeltöltés(ListaDoboz As ListBox) As String
   ...műveletek a listabox elemeivel
End Function

A meghivásnál megáll a futás:
Run-time error '424':
Object required

Debug-nál az átadott listbox értéke "null"

Tud rá valaki megoldást?
Mutasd a teljes hozzászólást!
Sziasztok!

Megvan a hiba!!!

A hívást kell átírni alábbira:
TömbFeltöltő ListBox

valamint javíani kellett az eljárás deklarálást:
Public Sub TömbFeltöltő(ListaDoboz As MSForms.ListBox)

...és megy is...


Köszönöm, hogy foglalkoztatok a problémámmal!
Mutasd a teljes hozzászólást!

  • A meghívásnál megáll a futás

    A kódrészletet, ahol a meghívás történik nem idézted be, pedig ott lesz a bibi.

    Debug-nál az átadott listbox értéke "null"
    Tud rá valaki megoldást?

    Az átadott paraméter ne legyen null
    Mutasd a teljes hozzászólást!
  • Szia Logred!

    Mivel függvényt használsz, fontos lenne közölnöd, hogy milyen módon hívod meg TömbFeltöltést
    Én így tenném: valamiStringTípusúVáltozó = Tömbfeltöltés(átadottParaméter)

    üdvözlettel
    verax
    Mutasd a teljes hozzászólást!
  • ... az átadottParaméter, mivel a függvény deklarációjában az szerepel, valamelyik ListBox neve legyen! (ListBox1, ... ListBoxn) ...
    Mutasd a teljes hozzászólást!
  • Elnézést kérek!
    Belekeveredtem a próbálkozásokba.

    Tehát:
    ...nem függvény, hanem Eljárás volt az ultolsó próbálkozásom:
    Public Sub TömbFeltöltő(ListaDoboz As ListBox)
        Dim i As Integer
        For i = 0 To ListaDoboz.ListCount
            MsgBox ListaDoboz.List(i)
        Next i
    End Sub

    Meghívása (közben fut az ürlap, ListBox1-ben vannak elemek):
    Private Sub CommandButton26_Click()
        TömbFeltöltő (ListBox1)
    End Sub

    A hibaüzenet:
    Run-time error '424':
    Object required

    Debug-nál a Meghívás sora van kijelölve sárgával (TömbFeltöltő (ListBox1)). Az egér kurzorát a ListBox1 fölé viszem és azt a megjegyzést írja ki, hogy
    ListBox1 = null

    Amit szeretnék, hogy a sok lisboxból, csak a kiválasztott listákból szedjem ki az elemeket...
    Mutasd a teljes hozzászólást!
  • Szia!
    Hol található a Listbox1 és hol a meghívó eljárás?
    Ha nem egy helyen vannak, akkor a Listbox1 objektumot teljes névvel kell meghivatkozni, pl. Userform1.Listbox1
    Ha munkalapon van, akkor a munkalap kódneve a hivatkozás eleje.
    Üdv.
    Mutasd a teljes hozzászólást!
  • Fferi!

    ListaBox1 az ürlapon található.
    A meghívás az ürlap kódjában van.
    A TömbFeltöltő a Modul2 kódjában van.

    Átraktam a TömbFeltöltő eljárást az ürlap kódjába, de úgy sem működik...
    Hibaüzenet ugyan az.
    Próbáltam a As ListBox helyett As Object-et is, valamint ByVal és ByRef is megvolt.
    Mutasd a teljes hozzászólást!
  • Szia!
    Jó lenne, ha egy mintát feltennél. Mert így nem sokat lehet mondani.
    Üdv.
    Mutasd a teljes hozzászólást!
  • ... és az is egy kérdés, hogy biztos ez a paraméter átadás a legcélravezetőbb megoldás?
    A ListBox1, ... ListBoxn is valamilyen forrásból kapta az elemeit. Egyszerűen az ősforrásra hivatkozva megkerülhető ez a kérdés.
    ... és ahogy Fferi is írta, egy példa beszédesebb sok magyarázatnál.
    Mutasd a teljes hozzászólást!
  • Sziasztok!

    Megvan a hiba!!!

    A hívást kell átírni alábbira:
    TömbFeltöltő ListBox

    valamint javíani kellett az eljárás deklarálást:
    Public Sub TömbFeltöltő(ListaDoboz As MSForms.ListBox)

    ...és megy is...


    Köszönöm, hogy foglalkoztatok a problémámmal!
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd