Keresés

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

  • Fferi50

    Topikgazda

    válasz pero19910606 #43799 üzenetére

    Szia!
    De miért nem használod ki az Excel lehetőségeit: a ciklus helyett beírhatod a képletet az F oszlopba egy lépésben, utána átváltoztathatod értékké, ha szükséges:
    Hosszabban:
    Sub szamol()
    Dim LS As Long
    LS = Cells(Rows.Count, 1).End(xlUp).Row
    Range(Cells(4, 6), Cells(LS, 6)).Formula = "=if(E4=0,0,B4/E4)" 'beírjuk a képletet a tartományba
    Range(Cells(4, 6), Cells(LS, 6)).Value = Range(Cells(4, 6), Cells(LS, 6)).Value 'átalakítjuk értékké
    End Sub

    Rövidebben:
    Sub szamolb()
    Dim LS As Range ' tartományként definiáljuk a változót 
    Set LS = Cells(Rows.Count, 1).End(xlUp).Offset(0, 5) 'ez lesz az F oszlopban az utolsó cella
    With Range(Cells(4, 6), LS) ' az F oszlop szükséges cellái
       .Formula = "=if(E4=0,0,B4/E4)" 'beírjuk a képletet
       .Value = .Value 'értékké alakítjuk
    End With
    End Sub

    A második változatban kevesebbet kell ísmételni a makróban, ezért írtam, hogy rövidebben.
    Ha a képletet meg szeretnéd tartani, akkor a képletadás utáni sort töröld ki.
    Ez ennyi sornál szerintem gyorsabb is, mint a ciklus futása.
    Üdv.

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