获取随机范围谷歌电子表格

时间:2018-05-02 10:03:00

标签: javascript google-apps-script google-sheets

我已经使用VBA和Excel来实现我的目的,但出于特殊原因我想转到谷歌电子表格。

我正在尝试复制一个在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);

1 个答案:

答案 0 :(得分:0)

这次修改怎么样?我认为有几种解决方案适合您的情况。所以请把它想象成其中之一。

修改要点:

  • 检索" A1:A"来自" BANKSHEET"。
  • 随机检索其中一个号码。
  • 将检索到的号码的单元格值复制到" 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);
}

注意:

  • 假设只有" BANKSHEET"的A列中有值。
  • 此修改后的脚本从" BANKSHEET"的A列中随机检索一个值。每次。
    • 如果您不想使用已经使用过的值,请根据您的情况修改脚本。

参考:

如果我误解了你的问题,我很抱歉。