循环浏览谷歌脚本上的列

时间:2015-03-18 15:17:00

标签: javascript loops google-apps-script

我希望使用google脚本循环输入多个输入值,然后将结果输出值的粘贴值复制到另一个工作表中,每次新输入迭代都会将结果粘贴到连续的列中。

我设法让输入值以循环形式循环,并使复制粘贴值在一列中起作用。但是,我无法解决如何将结果粘贴到循环中的列(即粘贴到A列,然后粘贴到B等)。

我看了一下Stack Overflow,但找不到任何似乎回答这个的东西。我目前的代码可以在下面找到:

function ValueByOne() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var cell = ss.getRange('Inputs!F3');
  var cellValue = cell.getValue();
  for (var cellValue = 1000; cellValue < 80000; cellValue += 1000){
  cell.setValue(cellValue + 1000);
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var source = ss.getRange('CostComparison!D14:D27');
  source.copyTo(ss.getRange('Sheet9!A1'), {contentsOnly: true});
  }
  }

特别是我要循环的'Sheet9!A1'。这样当cellValue为1000时,它会粘贴到'Sheet9!A1',当cellValue移动到2000时,它会粘贴到'Sheet9!B1'

提前感谢您的所有帮助!

杰克

1 个答案:

答案 0 :(得分:0)

也许,您可以在复制文件时尝试不同的方法。而不是使用copyTo函数,尝试使用copyValuesToRange,因此您可以迭代列。代码应该与此类似:

var ss = SpreadsheetApp.getActiveSpreadsheet();
var cell = ss.getRange('Inputs!F3');
  var cellValue = cell.getValue();
  var resultsRange = ss.getRange('Results!A1:H1');
  var resultsSheet = ss.getSheetByName('Results');
  for (var cellValue = 1000; cellValue < 80000; cellValue += 1000){
    cell.setValue(cellValue + 1000);
    var source = ss.getRange('CostComparison!D14:D27');
    var col = cellValue / 1000;
    source.copyValuesToRange( resultsSheet, col, col, 1, 10 );
  }