Здравствуйте форумчане!!! Подскажите пожалуйста, как сделать так (в приведенном примере) чтобы формулы в диапазоне A1:E12 пересчитывались только при внесении изменений (внесение данных, очистка ячейки) в ячейку H1 на Лист1. Спасибо!!!
Здравствуйте форумчане!!! Подскажите пожалуйста, как сделать так (в приведенном примере) чтобы формулы в диапазоне A1:E12 пересчитывались только при внесении изменений (внесение данных, очистка ячейки) в ячейку H1 на Лист1. Спасибо!!!djon2012
нк почему низя, если сильно хочется, то можно, но чуть-подругому: [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("H1")) Is Nothing Then [a1:e12].FormulaR1C1 = "=RANDBETWEEN(1,10)" [a1:e12] = [a1:e12].Value End If End Sub
нк почему низя, если сильно хочется, то можно, но чуть-подругому: [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("H1")) Is Nothing Then [a1:e12].FormulaR1C1 = "=RANDBETWEEN(1,10)" [a1:e12] = [a1:e12].Value End If End Sub
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address(0, 0) <> "H1" Then Exit Sub Randomize Dim c As Range For Each c In Range("A1:E12") c = Int(Rnd * 10) + 1 Next End Sub
[/vba] [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address(0, 0) <> "H1" Then Exit Sub Calculate End Sub
[/vba] для второго варианта нужно установить параметры вычислений – вручную.
и еще пара вариантов [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address(0, 0) <> "H1" Then Exit Sub Randomize Dim c As Range For Each c In Range("A1:E12") c = Int(Rnd * 10) + 1 Next End Sub
[/vba] [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address(0, 0) <> "H1" Then Exit Sub Calculate End Sub
[/vba] для второго варианта нужно установить параметры вычислений – вручную.KSV