Получить случайную таблицу google

Мне удалось достичь своих целей с помощью VBA и Excel, но я хотел бы перейти на электронную таблицу Google по определенным причинам.

Я пытаюсь воспроизвести код, который отлично работает в VBA.

Это просто, у меня есть лист с банком вопросов в столбце A, и мне нужен макрос, который может выбрать 1 случайный вопрос и скопировать его на второй лист.

Мне сложно понять, как я могу получить доступ к случайной ячейке, скопировать ее и вставить на второй лист. Было бы полезно какое-то простое объяснение, так как у меня очень мало или вообще нет знаний о программировании или javascript.

function test() {
  var ss = SpreadsheetApp.openById("sheetID");

  //Say I have 10 questions in the BANKSHEET, for instance
  var rQuestion = Math.floor(Math.random()*10+1); 

  //What goes in A1? So that I can access the range randomly according to rQuestion value.
  var inputRange =  ss.getSheetByName("BANKSHEET").getRange("A1");
  var inputValues = inputRange.getValues();
  var outputRange = ss.getSheetByName("QUIZZ").getRange("A1").setValues(inputValues);

Мой ответ показал вам результат, которого вы хотите? Не могли бы вы рассказать мне об этом? Если у вас еще есть вопросы по моему ответу, не стесняйтесь сообщить мне. Хочу учиться решать ваши вопросы.

Tanaike 04.05.2018 01:46
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
1
482
1

Ответы 1

Как насчет этой модификации? Я думаю, что есть несколько вариантов выхода из вашей ситуации. Так что считайте это одним из них.

Пункты модификации:

  • Получите количество ячеек в ячейке «A1: A» из листа «БАНКШЕТ».
  • Получить случайным образом одно из числа.
  • Скопируйте значение ячейки полученного числа в "A1" в "QUIZZ".

Измененный скрипт:

function test() {
  var ss = SpreadsheetApp.openById("sheetID");

  // Retrieve randomly a value from sheet of BANKSHEET
  var sheet = ss.getSheetByName("BANKSHEET");
  var src = sheet.getRange("A" + (1 + Math.floor(Math.random() * sheet.getLastRow())));

  // Put the value to "A1" at sheet of QUIZZ
  var dst = ss.getSheetByName("QUIZZ").getRange("A1");
  src.copyTo(dst);
}

Примечание :

  • Предполагается, что значения есть только в столбце A «БАНКШЕТ».
  • Этот модифицированный сценарий каждый раз случайным образом извлекает одно значение из столбца A "BANKSHEET".
    • Если вы не хотите использовать значение, которое уже было использовано, измените сценарий для вашей ситуации.

Справка :

Если я неправильно понял ваш вопрос, извините.

Другие вопросы по теме