Hirdetés

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

  • m.zmrzlina

    senior tag

    Lehet, hogy kicsit nagy fába vágtam a fejszémet és elakadtam. Van egy munkafüzetem amiben van egy olyan képlet(szörny)em ami négy sorba fér csak el a szerkesztőlécen ráadásul kb 20000 cellában. Azt csinálja, hogy a nyitó zárójel és a % előtti szóköz között lévő számot kihámozza a szövegből és értékké alakítja. Mindezt úgy, hogy nem számít neki, hogy mi van beállítva tizedeselválasztónak a gépen.

    Írtam helyette egy saját fv-t ami így néz ki:

    Function KIHAMOZ(text As String, utantol As String, elottig As String, tizedesjel As String)
    Dim szam As String

    szam = Mid(text, WorksheetFunction.Search(utantol, text) + 1, WorksheetFunction.Search(elottig, text) - WorksheetFunction.Search(utantol, text) - 1)

    For i = 1 To Len(szam)
    If Asc(Mid(szam, i, 1)) < 48 And Asc(Mid(szam, i, 1)) <> Asc(tizedesjel) Then
    Mid(szam, i, 1) = tizedesjel
    End If
    Next i

    KIHAMOZ = szam * 1

    End Function

    A fv tökéletesen működik amíg nem akarom értékké alakítani a kapott számot. Ha H2-ben átírom a ","-t "."-ra a Hoszlop összes tizedeselválasztója átíródik pontra.

    Értékké alakítás után ha az Excelben "," az elválasztó és H2-ben ","-állítok be akkor működik sőt ha H2-be "."-t teszek akkor #ÉRTÉK hibát ad a függvény (ahogy elvárom tőle).

    De ha az Excelben "." az elválasztó és én H2-be pontot teszek akkor is #ÉRTÉK hibát ad ha viszont "," -t akkor elvégzi az értékké alakítást de a cellában "1.0" formában (ponttal) jelenik meg az érték.

    Magyarul mindkét esetben ","-t kell kiválasztani H2-be, hogy működjön.

    Na ez most jó bonyolult de talán érthető.

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

Hirdetés