генератор случайных чисел Openoffice

Автор kokoc, 1 января 2023, 09:42

0 Пользователи и 1 гость просматривают эту тему.

kokoc

подскажите есть у этой функции =RANDBETWEEN(0;100) автоматический случайный выбор через определенное время, например через 60 секунд, не нажимая каждый раз на ячейку? Если да, то напишите пожалуйста точную формулу в ячейке

bigor

Цитата: kokoc от  1 января 2023, 09:42есть у этой функции =RANDBETWEEN(0;100) автоматический случайный выбор через определенное время,
нет. А какова цель подобного мероприятия?
Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

sokol92

Можно с помощью макросов запустить автоматический пересчет формул документа через определенный интервал времени.
Владимир.

sokol92

"По просьбам трудящихся" пример (см. вложение). Для старта цикла пересчета формул документа выполните макрос StartRecalc, для окончания - StopRecalc. Для переноса в другой документ достаточно перенести модуль OntimeMod библиотеки Standard документа.

Option Explicit
Option VbaSupport 1

Global TimeInt As Long    ' интервал времени (сек)
Global MacroRun As String ' имя запущенной процедуры

' Обеспечивает запуск процедуры MacroName через nSec секунд.
' Если nSec не указано, то nSec=60.
' Если nsec=0, то цикл выполнения завершается.
' MacroName указывается в виде Library.Module.Macro .
' Меняет переменные TimeInt и MacroRun.
Sub RunOnTime(Byval MacroName as String, Optional ByVal nSec)
  If IsMissing(nsec) Then nsec=60
  If nsec=0 Then
    TimeInt=0
    MacroRun=""
  Else
    MacroRun=MacroName
    TimeInt=nsec
    Application.OnTime Now() + 1/24/60/60 * Cdbl(nsec), MacroName
  End If 
     
End Sub

' Пересчитывает формулы документа (содержащие волатильные функции).
Sub ReCalc()
  ThisComponent.calculate
  RunOnTime MacroRun, TimeInt
End Sub 


' Стартует цикл пересчета книги через каждые 60 секунд
Sub StartRecalc()
  RunOnTime "Standard.OntimeMod.Recalc", 60
End Sub

' Завершает цикл пересчета книги.
Sub StopRecalc()
  RunOnTime "", 0
End Sub

См. также эту тему.
Владимир.

kokoc

Вы можете точнее написать формулу в моем случае,чтобы через 60 секунд велся перерасчет рандомайзера в ячейке или документе,я подставлял различные варианты не работает макрос,если можно сохранить или сделать скриншот то помогите пожалуйста

sokol92

1. Открываем документ из #3, разрешая выполнение макросов.
2. Выполняем макрос Ontime2.ods / Standard / OnTimeMod / StartRecalc. После этого значение ячейки A1 должно изменяться один раз в 60 секунд (формула будет автоматически пересчитываться).
3. Для отмены автоматического пересчета нужно выполнить макрос StopRecalc из того же модуля.

Я проверял работоспособность в версии LibreOffice 7.4.2.3 Win 10. В старых версиях LO и, тем более, OpenOffice работоспособность не гарантируется - у меня нет возможности проверить.
 
Владимир.

kokoc

#6
Цитата: sokol92 от  7 января 2023, 14:131. Открываем документ из #3, разрешая выполнение макросов.
2. Выполняем макрос Ontime2.ods / Standard / OnTimeMod / StartRecalc. После этого значение ячейки A1 должно изменяться один раз в 60 секунд (формула будет автоматически пересчитываться).
3. Для отмены автоматического пересчета нужно выполнить макрос StopRecalc из того же модуля.

Я проверял работоспособность в версии LibreOffice 7.4.2.3 Win 10. В старых версиях LO и, тем более, OpenOffice работоспособность не гарантируется - у меня нет возможности проверить.
 

не работает рандомайзер через 60 секунд,значение не меняется,записал видео https://cloud.mail.ru/public/YLYv/5r8GAGbsa
https://skr.sh/sHxn8wLVbFb

mikekaganski

#7
Цитата: kokoc от 18 января 2023, 09:44записал видео

И что Вы показали на видео?
1. Не показан процесс открытия документа - и не видно, был ли запрос на выполнение макросов и что Вы решили;
2. Не показана настройка безопасности макросов (вместо этого зачем-то показана настройка Java, которая здесь ни на что не влияет, поскольку Java не используется);
3. И наконец, не показано ожидание 60 с.

Но да,

Цитата: sokol92 от  7 января 2023, 14:13В старых версиях LO и, тем более, OpenOffice работоспособность не гарантируется
С уважением,
Михаил Каганский