0

1 時間ごとに更新されるオンライン ソースからデータをインポートして変更する Google スプレッドシートがあります。午後 10 時の更新の静的コピーをスプレッドシートから取得したいと考えています。これは、基本的に、特定の時間に特別にコピーして貼り付けるものです。次のスクリプトを使用して、午後 10 時にタイム ドリブン トリガーを設定しています。スクリプトは、1 つのシートのセル N5:N10 (1 時間ごとに更新) からデータを取得し、同じスプレッドシートの 2 番目のシートのセル N5:N10 に静的な値のみを貼り付けます。

function PasteValue()}

var ss = SpreadsheetApp.getActiveSpreadsheet();

var data= ss.getSheets()[1].getRange("N5:O10").getValues();

ss.getSheets()[2].getRange("N5:O10").setValues(data);

}

スクリプトを手動で実行すると、完全に機能します。しかし、Time-Driven トリガーを設定してシートを閉じると、翌朝確認すると一連の静的な「#######」だけがインポートされます。

誰も問題について何か洞察を持っていますか? または、数式またはスクリプトを使用して Google スプレッドシートで値を自動的にコピーして貼り付けるための代替スクリプトまたは方法を誰かが持っている場合は、本当に感謝します。

ありがとう、ロン

4

2 に答える 2

1

getActive の代わりにトリガー openById を使用する場合

function PasteValue()}
  var ss = SpreadsheetApp.openById(id);
  ss.getSheets()[1].getRange("N5:O10").copyTo(ss.getSheets()[2].getRange("N5"),{contentsOnly:true});
}
于 2013-05-23T23:46:57.067 に答える
0

使用している数式 (importdata または importhtml) は、スプレッドシートが開いていないとき、つまりユーザーがオンラインでないときに計算されていないと思います。

urlfetchapp でスクリプトを使用できます。

于 2015-12-05T14:58:51.163 に答える