Hirdetés

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

  • Mutt

    senior tag

    válasz T.Lacci #19737 üzenetére

    Hello,

    Különben az miért van hogy nem teljesen pontosan számol? (1000 x 1,4 = 1,399999999)

    A kapott makróban a szorzo változót Single típusról Double típusra állítsd át.

    ...a táblázatomnak szöveges fejléce van...

    A For sor = 1 To usor részben az 1-est írd át 2-re (vagy arra a sorra ahonnan a számok kezdődnek).

    Az eredeti feladat nem követel makrót, akár egy FKERES segítségével is megoldható.
    pl. E1-be: =D1*FKERES(D1;{0\1,4;10001\1,3;20001\1,2;30001\1,1};2)

    Itt a kapcsos zárójelekben van a keresési tartomány, 0 és 10000 között 1,4-et talál meg, 10001 felett 1,3-at és így tovább,

    Ha mégis makró kell, akkor itt van egy gyorsabb:

    Sub Szorzas2()
    Dim rng As Range

    'kiválasztjuk a csak számokat tartalmazó cellákat a D-oszlopban
    Set rng = Columns("D").SpecialCells(xlCellTypeConstants, xlNumbers)

    'jobbra tőlük számoljuk az új értéket; fkeres hasonló mint fent de a vba miatt máshogy kell megadni
    rng.Offset(, 1).FormulaR1C1 = "=RC[-1]*VLOOKUP(RC[-1],{0,1.4;10001,1.3;20001,1.2;30001,1.1},2)"

    'értékeket bemásoljuk
    Columns("E").Copy
    Columns("E").PasteSpecial (xlPasteValues)

    Application.CutCopyMode = False

    End Sub

    üdv

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