WebHU - Programozási kérdések és válaszok

Az excel tartomány argumentumként adja át a cella tartalmát az udf-nek

Jelenleg megpróbálom átadni egy felhasználó által definiált függvénynek az Excelben egy cella tartalmát argumentumként.

Ugyanis kiszámolom az engem érdekelt tartományt egy cellában, ahol valami ilyesmit kapok: "sheet1!X17:X37".

Most ezt a cellát (pl. A1) szeretném átadni egy udf-nek. Például azt szeretném, hogy a B1-ben a "=myfunction(A1)" legyen a "=myfunction(sheet1!X17:X37" helyett.

Bármilyen ötletet?

A funkcióm a következő:

Public Function ConcatItNoDuplicities(ByVal cellsToConcat As Range) As String
    ConcatItNoDuplicities = ""
    If cellsToConcat Is Nothing Then Exit Function
    Dim oneCell As Range
    Dim result As String
    For Each oneCell In cellsToConcat.Cells
        Dim cellValue As String
        cellValue = Trim(oneCell.Value)
        If cellValue <> "" Then
            If InStr(1, result, cellValue, vbTextCompare) = 0 Then _
                result = result & cellValue & ","
        End If
    Next oneCell
    If Len(result) > 0 Then _
        result = Left(result, Len(result) - 1)
    ConcatItNoDuplicities = result
End Function

Legjobb T


  • Hm... lehet, hogy hiányzik valami, de az egyik cella összefűzése csak az a cella, nem? szóval ez nem ugyanaz, mint =A1 30.11.2017
  • Valójában az A1 tartalmazza azt a tartományt, amelyet össze akarok fűzni, és argumentumként az A1 tartalmát szeretném használni a függvényemben, nem pedig az A1 összefűzésére. 30.11.2017

Válaszok:


1

Közvetett használata:

=ConcatItNoDuplicities(INDIRECT(A1))
30.11.2017
  • Nagyon köszönöm! Ez olyan egyszerű volt... el sem hiszem, mennyi időt töltöttem vele. 30.11.2017
  • @theodorcarp kérjük, jelölje be helyesnek a válasz melletti pipával. 30.11.2017

  • 2

    Egy másik megközelítés.

    Tegyük fel, hogy az A1 cellablokkcímnek tűnő szöveget tartalmaz. Ez az apró UDF() elvégzi a cél egyszerű összefűzését:

    Public Function TakeOneStepBeyond(rng1 As Range) As String
        Dim rng2 As Range, r As Range
    
        Set rng2 = Range(rng1.Value)
    
        TakeOneStepBeyond = ""
        For Each r In rng2
            TakeOneStepBeyond = TakeOneStepBeyond & r.Value
        Next r
    End Function
    

    adja meg itt a kép leírását

    30.11.2017
    Új anyagok

    A rádiógomb ellenőrzött eseményének használata a jQueryben
    Ebben a cikkben látni fogjuk, hogyan kell dolgozni a jquery választógombbal ellenőrzött eseményeivel. A választógombok HTML gombok, amelyek segítenek kiválasztani egyetlen értéket egy csoportból...

    Körkörös függőségek megoldása terraformban adatforrásokkal – lépésről lépésre
    Mi az a körkörös függőségek Dolgozzunk egy egyszerű eseten, amikor az SQS-sor és az S3-vödör közötti körkörös függőség problémája van egy egymástól függő címkeérték miatt. provider..

    Miért érdemes elkezdeni a kódolást 2023-ban?
    01100011 01101111 01100100 01100101 — beep boop beep boop Világunk folyamatosan fejlődik a technológia körül, és naponta fejlesztenek új technológiákat a valós problémák megoldására. Amint..

    🎙 Random Noise #2  – Örökbefogadás és hit
    az analitika íratlan világának gondozása Szeretné, hogy ezek a frissítések a postaládájába kerüljenek? Iratkozzon fel itt . "Ha önvezető autókat gyártanak, akkor mi miért ne..

    A legrosszabb politika és prediktív modellek májátültetésre jelöltek számára az Egyesült Államokban
    A máj (vagy óangolul lifer) az emberi test legnehezebb belső szervére utal, amely csendesen működik a nap 24 órájában. Mit csinál a máj? 500 feladatot hajt végre a szervezet egészségének..

    5 webhely, amely 2022-ben fejleszti front-end fejlesztői készségeit
    Frontendmentor.io A tényleges projektek létrehozásával a Frontendmentor.io segítséget nyújt a front-end kódolási képességeinek fejlesztésében. A kódolást azután kezdheti meg, hogy..

    Mikor kell használni a Type-t az interfészhez képest a TypeScriptben?
    A TypeScript a JavaScript gépelt szuperkészlete, amely statikus gépelést ad a nyelvhez. Ez megkönnyíti a robusztus és karbantartható kód írását azáltal, hogy a hibákat a fordítási időben..