< návrat zpět
MS Excel
Téma: Aktualizace buněk
Zaslal/a CMM-Team 2.7.2020 12:58
Ahoj, v mém sešitu používám skrze VBA funkci RANDARRAY.
Bohužel při uložení sešitu dojde ke změně hodnot. Napadá vás, jak tomuto zabránit ? Rád bych, aby jednak nebyl vidět vzorec a jednak, aby nedocházelo k nechtěné aktualizaci. Makro by se mělo spustit jen po kliknutí na příslušné tlačítko a poté už by hodnoty měly být stálé.
Kód níže:
Sub Start()
'
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Range("T17:W18") = "=RANDARRAY(1,1,0,0.02,FALSE)"
Range("X17:AA18") = "=RANDARRAY(1,1,0,0.02,FALSE)"
Range("AB17:AE18") = "=RANDARRAY(1,1,0,0.02,FALSE)"
Range("AF17:AI18") = "=RANDARRAY(1,1,0,0.02,FALSE)"
Range("AJ17:AM18") = "=RANDARRAY(1,1,0,0.02,FALSE)"
Range("T19:W20") = "=RANDARRAY(1,1,1.47,1.51,FALSE)"
Range("X19:AA20") = "=RANDARRAY(1,1,1.47,1.51,FALSE)"
Range("AB19:AE20") = "=RANDARRAY(1,1,1.47,1.51,FALSE)"
Range("AF19:AI20") = "=RANDARRAY(1,1,1.47,1.51,FALSE)"
Range("AJ19:AM20") = "=RANDARRAY(1,1,1.47,1.51,FALSE)"
Range("T21:W22") = "=RANDARRAY(1,1,89.98,90.02,FALSE)"
Range("X21:AA22") = "=RANDARRAY(1,1,89.98,90.02,FALSE)"
Range("AB21:AE22") = "=RANDARRAY(1,1,89.98,90.02,FALSE)"
Range("AF21:AI22") = "=RANDARRAY(1,1,89.98,90.02,FALSE)"
Range("AJ21:AM22") = "=RANDARRAY(1,1,89.98,90.02,FALSE)"
Range("T23:W24") = "=RANDARRAY(1,1,142.47,142.53,FALSE)"
Range("X23:AA24") = "=RANDARRAY(1,1,142.47,142.53,FALSE)"
Range("AB23:AE24") = "=RANDARRAY(1,1,142.47,142.53,FALSE)"
Range("AF23:AI24") = "=RANDARRAY(1,1,142.47,142.53,FALSE)"
Range("AJ23:AM24") = "=RANDARRAY(1,1,142.47,142.53,FALSE)"
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub
Předem děkuji za rady
To preto, lebo vkladáte vzorec, a ten vzorec tam ostane, čiže sa pri kalkulácii prepočíta. Ten vložený a vypočítaný vzorec prepíšte jeho hodnotou. z brucha (oblasti som spojil, lebo sú spojité):
Sub Start()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
With Range("T17:AM18")
.Formula = "=RANDARRAY(1,1,0,0.02,FALSE)"
.Value = .Value
End With
With Range("T19:AM20")
.Formula = "=RANDARRAY(1,1,1.47,1.51,FALSE)"
.Value = .Value
End With
With Range("T21:AM22")
.Formula = "=RANDARRAY(1,1,89.98,90.02,FALSE)"
.Value = .Value
End With
With Range("T23:AM24")
.Formula = "=RANDARRAY(1,1,142.47,142.53,FALSE)"
.Value = .Value
End With
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Subcitovat
CMM-Team(2.7.2020 15:13)#047133 Perfektní... děkuji za pomoc.
citovat