私は独特の状況があります。私は、ローテクな仕事管理システムを作り出しています。私はシートの「作業オーダー」を持っています。このオーダーでは、ヘッダーの後ろにある各行に作業オーダーが含まれています。ただし、作業オーダーは数日かかることがあります。だから、私は毎月の仕事の順序ごとに毎日の仕事を示す別のシートが必要です。たとえば、作業オーダーが1/12/17から1/14/17までの場合、別のシートに3つの行を作成して、それぞれの日を表すように自動化したいと考えています。目的は、毎日の仕事に基づいて乗組員を割り当てることができるようにすることです。シートから行をコピーし、別のシートにマイナーチェンジして複数のバージョンを貼り付ける方法
これは私がこれまでに書いたものですが、どこにエラーがあるのかわかりません。私は確かにアマチュアです。
この例では、「ワードオーダー」シートはソースシート、「スケジュール」はターゲットシート、ADとAEは開始日と終了日の列、AIは条件付きです。 onEdit。
function onEdit(event) {
var ss = SpreadsheetApp.getActiveSpreadsheet()
var target = SpreadsheetApp.getActiveSpreadsheet()
var source_sheet = ss.getSheetByName("Work Orders");
var target_sheet = target.getSheetByName("Schedule");
var source_range = source_sheet.getActiveRange().getRow();
var startdate = source_sheet.getRange("AD"+(source_range));
var enddate = source_sheet.getRange("AE"+(source_range));
var duration = enddate - startdate + 1
var event = (source_sheet.getRange("AI"+(source_range));
var last_row = target_sheet.getLastRow();
var target_range = target_sheet.getRange("A"+(last_row+1)+":AJ"+(last_row+1));
if (source_sheet.getRange("AI"+(source_range)) == "Yes");
target_sheet.insertRowAfter(last_row);
source_range.copyTo(target_range);
}
私はこれをonEdit()トリガにする必要はありません。代わりに使用できるカスタムメニューアイテムがあります。このオプションを使用すると、私はAIの中で条件付きの "Yes"を必要としません。
function onOpen() {
SpreadsheetApp.getUi()
.createMenu('Triggers')
.addItem('Create Daily Task', 'CreateDailyTask')
.addToUi();
};
第一編集:それぞれが別個のものであることを示すために貼り付けられた行ごとに、日付の変更を持つ方法があるかどう
最後に、それはケーキの上のアイシングになります。
第二編集:
気づいていないものの、それが重要な場合、私は私の原点をシート「作業指示」は、自動的にそれをソートするスクリプトを持っていることも、言及します:
/**
* Automatically sorts the 30th column (not the header row) Ascending.
*/
function onEdit(event){
var sheet = event.source.getSheetByName("Work Orders");
var editedCell = sheet.getActiveCell();
var columnToSortBy = 30;
var tableRange = "A2:AJ"; // What to sort.
if(editedCell.getColumn() == columnToSortBy){
var range = sheet.getRange(tableRange);
range.sort({ column : columnToSortBy, ascending: true });
}
}
すべてのヘルプは高く評価され。
デバッガでこれを実行しましたか? –