Как сохранить случайные величины в одном месте? - PullRequest
0 голосов
/ 15 апреля 2019

Я создал лист Google, в котором есть случайный символ, но каждый раз, когда я его редактирую, лист меняется. Я пытаюсь сделать так, чтобы список персонажей не изменился, когда вы нажмете кнопку. https://docs.google.com/spreadsheets/d/1z7cSTIxBNf6BV9BIZFvWn_VMqa8Gh8ohebKAKlKNXZY/edit?usp=sharing

Я знаю, что случайные величины меняются каждый раз, потому что они похожи на now (). Однако у меня есть код в ячейках, который мне нужно заменить на номер, который он показывает, поэтому ячейки не изменятся после того, как я нажму на кнопку сохранения символа.

// custom menu function
function onOpen() {
  var ui = SpreadsheetApp.getUi();
  ui.createMenu('Custom Menu')
      .addItem('Save Character','saveCharacter')
      .addToUi();
}

// function to save character
function saveCharacter() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheets = ss.getSheets()[1];
  var stats = sheets.getRange("F9:F14");
  sheets.getRange("F9:F14").setValue(stats);
}

Ответы [ 3 ]

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

Я полагаю, что вы запрашиваете пользовательскую функцию ячейки. Я думаю, что это будет работать для вас. В будущем дайте нам знать, когда вы говорите о функциях клетки. Обычно мы получаем вопросы о функциях скрипта Служб Google, которые не предназначены для использования в качестве функций ячеек. На самом деле, если бы вы написали заглавную букву целиком, это заставило бы многих из нас думать, что это тоже функция клетки.

function SAVECHARACTER(r) {
  var chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz012345678!@#$%^&*()_-=+[]{}|\.,<>?/:;~'; 
  return chars.charAt(Math.floor(Math.random()*chars.length));
}
0 голосов
/ 17 апреля 2019

Я понял, как это сделать сейчас. Спасибо всем, кто пытался мне помочь, я нашел много способов спасения каждой клетки.

// custom menu function
function onOpen() {
  var ui = SpreadsheetApp.getUi();
  ui.createMenu('Custom Menu')
      .addItem('Save A Character','saveaCharacter')
      .addToUi();
}

// function to save character
function saveaCharacter() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  //this establishes the sheets
  var front = ss.getSheets()[1];
  //this establishes the character front page
  var race = front.getRange("T1").getValues();
  var gender = front.getRange("AB1").getValues();
  var diety = front.getRange("AQ1").getValues();
  var al = front.getRange("AH1").getValues();
  var background = front.getRange("AF3").getValues();
  var class = front.getRange("Z10").getValues();
  var hp = front.getRange("AO10").getValues();
  var armor = front.getRange("AS20").getValues();
  var subclass = front.getRange("AS51").getValues();
  var w1 = front.getRange("V29").getValues();
  var w2 = front.getRange("V30").getValues();
  var w3 = front.getRange("V31").getValues();
  var w4 = front.getRange("V32").getValues();
  var w5 = front.getRange("V33").getValues();
  var w6 = front.getRange("V34").getValues();
  var l1 = front.getRange("B47").getValues();
  var l2 = front.getRange("B48").getValues();
  var l3 = front.getRange("B49").getValues();
  var l4 = front.getRange("B50").getValues();
  var l5 = front.getRange("B51").getValues();
  var l6 = front.getRange("B52").getValues();
  var str = front.getRange("F9").getValues();
  var dex = front.getRange("F10").getValues();
  var con = front.getRange("F11").getValues();
  var int = front.getRange("F12").getValues();
  var wis = front.getRange("F13").getValues();
  var cha = front.getRange("F14").getValues();
  //this lists the character
  front.getRange("AB1").setValue(gender);
  front.getRange("AQ1").setValue(diety);
  front.getRange("AH1").setValue(al);
  front.getRange("Z10").setValue(class);
  front.getRange("AO10").setValue(hp);
  front.getRange("AS20").setValue(armor);
  front.getRange("AF3").setValue(background);
  front.getRange("T1").setValue(race);
  front.getRange("AS51").setValue(subclass);
  front.getRange("V29").setValue(w1);
  front.getRange("V30").setValue(w2);
  front.getRange("V31").setValue(w3);
  front.getRange("V32").setValue(w4);
  front.getRange("V33").setValue(w5);
  front.getRange("V34").setValue(w6);
  front.getRange("B47").setValue(l1);
  front.getRange("B48").setValue(l2);
  front.getRange("B49").setValue(l3);
  front.getRange("B50").setValue(l4);
  front.getRange("B51").setValue(l5);
  front.getRange("B52").setValue(l6);
  front.getRange("F9").setValue(str);
  front.getRange("F10").setValue(dex);
  front.getRange("F11").setValue(con);
  front.getRange("F12").setValue(int);
  front.getRange("F13").setValue(wis);
  front.getRange("F14").setValue(cha);
}
0 голосов
/ 15 апреля 2019

Тристиан, твой вопрос не имеет никакого смысла.Вы создали пункт меню под названием «Сохранить символ», и при его нажатии он вызовет функцию «saveCharacter».Затем вы получаете ActiveSpreadsheet и 0-й лист этой таблицы.Теперь вам нужно создать случайное число и сохранить его в ячейке, в которую вы хотите его сохранить.Чтобы сохранить его, вы используете метод getRange () класса Sheet, а затем метод setValue (), чтобы установить значение в этом диапазоне или ячейке.Я не уверен, как вы генерируете случайное число или что вы хотите сделать с теми, которые вы сохраняете, поэтому вам может потребоваться сделать некоторые другие вещи, чтобы все расставить так, как вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...