Google ドキュメントのスプレッドシートに 3 つのスクリプトがあります。このスプレッドシートのcolumn H
(またはcolumn 8
) に を入力するx
と、スクリプトはそれをその日の日付に変更します。
数日後、すべての日付が日付から単なる数字column H
に変わりました。数値は次のようになります。40492, 40494, 40511
何が原因なのかわかりません。多分それは私のスクリプトに間違っているものです。以下に貼り付けました。何か案は?
これが最初のものです:
function onEdit(e) {
var colorA = "yellow";
var colorB = "#dddddd";
var colorC = "#dddddd";
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Purchase Orders");
var range = e.source.getActiveRange();
var sheetName = SpreadsheetApp.getActiveSheet().getName();
if (sheetName == "Purchase Orders") {
// 3 is column C
if (range.getColumn() == 7 && range.getValue() != "") {
var r = range.getRow() + 1;
sheet.getRange("A" + r + ":G" + r).setBackgroundColor(colorC);
}
}
var col = e.source.getActiveRange().getColumn();
if(col == 8 || col == 7) {
var rows = sheet.getMaxRows();
//column C
var rangeC = sheet.getRange("H1:H"+rows);
var valuesC = rangeC.getValues();
//column H range
var rangeH = sheet.getRange("G1:G"+rows);
var colorH = rangeH.getBackgroundColors();
var valuesH = rangeH.getValues();
//iterate over each row in column C and H
//then change color
for (var row = 0; row < valuesC.length; row++) {
//check for columnC and column H
var hRow = colorH[row];
if (valuesC[row][0] != "" && valuesH[row][0] == "") {
hRow[0] = colorA;
} else if (valuesH[row][0] != "") {
hRow[0] = colorB;
}
}
sheet.getRange("G1:G" + rows).setBackgroundColors(colorH);
}
}
これが2番目のものです:
function onEdit(e) {
var colorA = "yellow";
var colorB = "#dddddd";
var colorC = "#dddddd";
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Purchase Orders");
var range = e.source.getActiveRange();
var sheetName = SpreadsheetApp.getActiveSheet().getName();
if (sheetName == "Purchase Orders") {
// 3 is column C
if (range.getColumn() == 3 && range.getValue() != "") {
sheet.insertRowAfter(range.getRow());
var r = range.getRow() + 1;
sheet.getRange("A" + r + ":H" + r).setBackgroundColor(colorC);
}
}
var col = e.source.getActiveRange().getColumn();
if(col == 3 || col == 8) {
var rows = sheet.getMaxRows();
//column C
var rangeC = sheet.getRange("C1:C"+rows);
var valuesC = rangeC.getValues();
//column H range
var rangeH = sheet.getRange("H1:H"+rows);
var colorH = rangeH.getBackgroundColors();
var valuesH = rangeH.getValues();
//iterate over each row in column C and H
//then change color
for (var row = 0; row < valuesC.length; row++) {
//check for columnC and column H
var hRow = colorH[row];
if (valuesC[row][0] != "" && valuesH[row][0] == "") {
hRow[0] = colorA;
} else if (valuesH[row][0] != "") {
hRow[0] = colorB;
}
}
sheet.getRange("H1:H" + rows).setBackgroundColors(colorH);
}
}
これが3番目のものです:
function onEdit(e) {
var ss = e.source.getActiveSheet();
var r = e.source.getActiveRange();
//1 is A, 2 is B, ... 8 is H
if (r.getColumn() == 8 && r.getValue() == "x") {
r.setNumberFormat("MM/dd/yyyy")
r.setValue(Utilities.formatDate(new Date(), "MST", "yyyy-MM-dd"));
}
}