我希望使用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'
。
提前感谢您的所有帮助!
杰克
答案 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 );
}