Hirdetés

Keresés

Új hozzászólás Aktív témák

  • addikt

    válasz föccer #54237 üzenetére

    Mostanában sokat dolgozom vele, tényleg sokat segít, de érteni is kell hozzá valamennyire.
    Standard dolgokat szinte hibátlanul megoldja, de gyakran túlbonyolítva és nem optimalizálva. Pl ha bármit akarok keresni vagy elemeket megszámolni, akkor majdnem mindig végigiterál az egész range-n, ahelyett, hogy find vagy match-et használna, vagy countA vagy ilyesmit. Feleslegesen telepakol változóval mindent és ír 3 sort egymás alá, ahol egyik változóból kifejezi a másodikat, abból a harmadikat. Ezeket simán össze lehet vonni egy sorba meg ilyenek. Szóval végül is működik a kód, csak nem túl elegáns meg kicsit erőforrás pazarló.
    De ezzel együtt lehet élni.

    Ha viszont valami kacifántosabb vagy nagyon nem standard dolgot kérsz tőle, akkor hajlamos nagyon belezavarodni, elkezd haluzni és szar megoldásokkal traktálni, amik nem működnek és ilyenkor nagyon könnyen bele lehet csavarodni és a végén elmegy 2 óra azzal, hogy vitatkozom vele és a szar megoldásait próbálom működésbe hozni.
    Ez olyankor idegesítő, amikor amúgy a kódot megírhattam volna magamnak fél-1 óra alatt, csak gondoltam előtte gyorsan megkérdem, hátha összejön 10 perc alatt és a végén ott vitatkozom vele két órával később is. :D

  • Mutt

    senior tag

    válasz föccer #54237 üzenetére

    Szia,

    Nem kell két dictionary, hogy tudd melyik receptből mennyi van. A kulcs (key), mellett van az item tulajdonság is. A receptDict teljesen felesleges.

        ' Receptszámok összegyűjtése és számlálása
      Set receptCount = CreateObject("Scripting.Dictionary")
        osszesMinta = 0
        
        For i = 2 To lastRow
            If alapadatok.Cells(i, 1).Value = valasztottUzem Then
                receptSzam = alapadatok.Cells(i, 2).Value
                osszesMinta = osszesMinta + 1
              If Not receptCount.Exists(receptSzam) Then
                   receptCount.Add receptSzam, 1
                Else
                   receptCount(receptSzam) = receptCount(receptSzam) + 1
                End If
            End If
        Next i

    üdv

Új hozzászólás Aktív témák