Страницы: 1
RSS
Не изменять случайное число в ячейке
 
Здравствуйте, помогите решить проблему. Есть числовое поле, в котором должны генерироваться случайные числа, поле создано с помощью команды СЛУЧМЕЖДУ. Проблема в следующем: как сделать так, чтобы при вводе каких-либо значений в другие ячейки (не относящиеся к полю), генерация не происходила? т.е. числа не менялись. И как сделать принудительную генерацию с помощью кнопки? (см. прилагаемый файл).

Заранее благодарю за внимание.
 
Цитата
Nicolas написал: чтобы при вводе каких-либо значений в другие ячейки (не относящиеся к полю), генерация не происходила
В настройках поставить вычисления вручную и выключить пересчёт при сохранении. Это ответ под Ваш случай, но лучше генерировать число макросом, который его запишет в ячейку значением, а не формулой. Данный подход даёт ответ на Ваш второй вопрос.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
JayBhagavan, а где находятся эти настройки? Просто в окне формулы "СЛУЧМЕЖДУ" нет параметра ручных настроек.(
Изменено: Nicolas - 29.11.2016 11:52:28
 
Это параметры листа.
Файл-Дополнительн-Формулы.
 
Nicolas, настройки экселя:
файл, параметры, формулы

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
JayBhagavan, с настройками разобрался. Спасибо. Сейчас не могу понять как кнопку привязать к генерации?
 
Цитата
vikttur написал: Файл-Дополнительн-Формулы.
Можно и с ленты. Формулы - Вычисления - Вручную.
 
Цитата
как кнопку привязать к генерации
F9 - ручной пересчет листа
 
sharikov1812, с ленты Вы не отключите пересчёт при сохранении.
Nicolas, без формул. Макрос в отдельный модуль:
Код
Option Explicit

Sub Кнопка1_Щелчок()
    Const sAddress$ = "C3:G7"
    Const lMIN& = 1
    Const lMAX& = 20
    
    Dim rng As Range
    Dim arr&()
    Dim i&, j&, c&, r&
    
    Randomize
    
    Set rng = Range(sAddress)
    With rng
        r = .Rows.Count
        c = .Columns.Count
        ReDim arr(1 To r, 1 To c)
        
        For i = 1 To r
            For j = 1 To c
                arr(i, j) = CLng(lMIN + (lMAX - 1) * Rnd)
            Next j
        Next i
        
        .Value = arr
    End With ' rng
End Sub
Изменено: JayBhagavan - 29.11.2016 11:57:47

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
Страницы: 1
Читают тему
Наверх