Есть ли функция, позволяющая избежать действий пользователя во время выполнения скрипта? - PullRequest
0 голосов
/ 11 апреля 2019

Я долгое время разрабатывал скрипт в Google Sheets, и мне бы хотелось:

  • распечатать сообщение пользователю: «Эй, он запущен, пожалуйста, подождите» (с одновременно запущенным скриптом)
  • заморозить электронную таблицу, чтобы пользователь не мог ничего с ней сделать во время обработки сценария
  • любая другая возможность избежать действий пользователя во время работы (редактирование: без защиты)

В данный момент я использую «browser.msgbox», говорящий: «пожалуйста, подождите, пока не будет написано« сценарий достигнут »на зеленой панели там (но пока ничего не происходит). Затем пользователь должен нажмите OK, подождите и посмотрите на эту зеленую панель. (Это французская версия google sheet, я не уверен насчет точного содержания этой панели на английском, но надеюсь, вы понимаете, о чем я). Мой клиент хотел бы чего-то большего ... без каких-либо ошибок, допущенных не терпеливым пользователем, поэтому я прошу вашей помощи.

Я работал несколько лет с Excel/VBA, это было бы что-то похожее на Application.screenUpdating=false и Application.Statusbar="Here is the text"...

Я искал советы в интернете, но не нашел ничего полезного для своих целей.

Спасибо за ваше время и вашу помощь по этому вопросу!

1 Ответ

0 голосов
/ 11 апреля 2019

Попробуйте это:

function protectAllSheets() {
  var ss=SpreadsheetApp.getActive();
  var shts=ss.getSheets();
  for(var i=0;i<shts.length;i++) {
    var protection=shts[i].protect();
    protection.addEditor(me);
    protection.removeEditors(protection.getEditors())
  }
}

Запустите ваш скрипт здесь.

function unProtectAllSheets() {
var ss=SpreadsheetApp.getActive();
  var shts=ss.getSheets();
  for(var i=0;i<shts.length;i++) {
    shts[i].getProtections(SpreadsheetApp.ProtectionType.SHEET)[0].remove();
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...