< návrat zpět

MS Excel


Téma: Aktualizace buněk rss

Zaslal/a 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

Zaslat odpověď >

#047132
elninoslov
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 Sub
citovat
#047133
avatar
Perfektní... děkuji za pomoc.citovat

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje