0

現在、ImportXML を使用してライブ Web データを追跡するための Google ドキュメントの設定に取り組んでおり、特定の時間間隔でそれらの数値を他の列にコピーしたいと考えています。情報が入力された日付を追跡し、15 日ごとにこの情報を複数のアカウントの別の列に自動的にコピーします。これまでのところ、行 1 で動作しているコードを次に示しますが、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());
}

一度にすべてではなく、行ごとに評価する方法はありますか? 範囲を使用するべきではないと思いますが、これを行う方法が他にわかりません。どんな助けでも大歓迎です!! 私が何かを明確にすることができれば、私に知らせてください.

ありがとう!

4

1 に答える 1

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);
}

私はそれをテストしていませんが、小さなエラーが見つかった場合は、自由に修正してください:)

于 2013-10-04T04:50:49.560 に答える