我目前正在设置Google文档以使用ImportXML跟踪实时网络数据,并希望在特定时间间隔后将这些数据复制到其他列。我正在跟踪输入的日期信息,然后每15天自动将此信息复制到多个帐户的另一列。到目前为止,这是我的代码,它正在第1行,但现在我已经为一个单元格工作了,我想为整个列单独执行此操作:
function moveValuesOnly() {
var sheet = SpreadsheetApp.getActiveSpreadsheet()
var currentValue = sheet.getRange("B4").getValue();
if (currentValue == (15)) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var source = ss.getRange("H4");
var copyRange = ss.getRange("H4");
var l = ss.getDataRange().getValues().length;
var pasteRange = ss.getRange("R4");
pasteRange.setValues(copyRange.getValues());
}}
var sheet = SpreadsheetApp.getActiveSpreadsheet()
var currentValue = sheet.getRange("B5").getValue();
if (currentValue == (30)) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var source = ss.getRange("H4");
var copyRange = ss.getRange("H4");
var l = ss.getDataRange().getValues().length;
var pasteRange = ss.getRange("T5");
pasteRange.setValues(copyRange.getValues());
}
有没有办法让它逐行评估而不是一次评估?我猜我不应该使用范围,但我不知道如何做到这一点。任何帮助将非常感谢!!如果我能澄清一切,请告诉我。
谢谢!
答案 0 :(得分:0)
你是如何调用这个脚本的?作为电子表格中的公式或脚本编辑器? 如果您将其用作公式,则可以直接读取范围。 如果从脚本编辑器调用它,则可以对脚本进行少量更改,使其在大于单元格的范围内工作。请参阅以下代码
function moveValuesOnly() {
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var range= sheet.getRange("B4:R20");
var currentValue = range.getValues(); // Change 20 to whatever you want
var COL_B = 0; // relative to col B
var COL_H = 6;
var COL_R = 16;
for(var i = 0 ; i < currentValue.length ; i++){
if (currentValue[i][0] == (15)) {
// Copy value in H4, H5 etc to R4, R5 etc.
currentValue[i][COL_R] = currentValue[i][COL_H];
}
range.setValues(currentValue);
}
我没有对它进行测试,但如果您发现任何轻微错误,请随时修复它:)