0
1つの個人用に1つのタブがあり、各タブの名前は個人に関連しています。このスプレッドシートには、それぞれ100人前後のタブがあります。スプレッドシート内の特定のタブでGoogleスクリプトを実行する
毎月末に、保護されていない範囲の選択肢から前月のデータを消去する必要があります。
現在、私はこれを使用して、各タブでスクリプトを100回実行する必要があります。
function clearData() {
// assign this to a button on each sheet
// check user really wants to clear data
var ui = SpreadsheetApp.getUi();
var response = ui.alert('Are you sure you want to clear data for this month?', ui.ButtonSet.YES_NO);
// Process the user's response.
if (response == ui.Button.YES) {
// get the name of the current sheet
var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getName();
var sheets = [ss,ss,ss];
['D2:D2', 'D4:AH9','D11:AH40'].forEach(function (r, i) {
SpreadsheetApp.getActive().getSheetByName(sheets[i]).getRange(r).clearContent();
})
} else {
}
}
私は各シート上のボタンを経由して、そのスクリプトを実行します。
個人のすべてのシートをループし、それぞれのデータをクリアする1つのスクリプトを実行する方法が必要です。スクリプトは、すべてのユーザーの名前を含む範囲から適切なシート名を取得する必要があります。
これは可能ですか?
誰でも私にこの作業をお願いしますか?
おかげ
おかげますが、私は唯一の個々のシートにスクリプトを実行する必要があるとして、スプレッドシート内のすべてのシートをそのループ。私はスクリプトを実行したくない他のシートがあります)ありがとう – Ged
その場合、あらかじめ定義された名前のリストをループするために余分な行を追加するだけで、名前=現在のスプレッドシート名の場合はデータを消去します。 – HDCerberus