每当在电子表格的任何地方插入新行时,我都尝试使用Apps Script更新单元格,并且该值取决于在该行的其他列中输入的内容。我已经尝试过getActiveRange,但它只返回第一行。到目前为止,这就是我所拥有的。任何帮助深表感谢!
function SetOwner() {
var gifLastRow = GIF_SHEET.getLastRow();
var gifNumRows = gifLastRow - START_ROW + 1; // Number of rows to process (accounting for Zero index)
// Fetch the range of cells starting at A2
var gifRange = GIF_SHEET.getRange(START_ROW, 1, gifNumRows, 19);
// Fetch values for each row in the Range.
var gifData = gifRange.getValues();
var rownum = gifRange.getRow();
for (var i = 0; i < gifData.length; i++) {
var row = gifData[i];
var mowner = "=vlookup(B:B,Config!A$1:B$10,2,false)"//This is the VLOOKUP for Team A!
var cowner = "=vlookup(B:B,Config!E$1:F$10,2,false)"//This is the VLOOKUP for Team B!
if (row[13] == "Team A") { //check if created by team a
GIF_SHEET.getRange(rownum, 17).setValue(mowner);
} else if (row[13] == "Team B") { //check if created by team b
GIF_SHEET.getRange(rownum, 17).setValue(cowner);
}
}
}
答案 0 :(得分:2)
此函数将返回您进行更改的范围。基本上,如果您编辑单元格A10,脚本将返回范围A10。
function onEdit(e){
var cell = e.range;
Logger.log(cell.getA1Notation());
return cell;
}
文档:https://developers.google.com/apps-script/guides/triggers#onedite
答案 1 :(得分:0)
多亏了Juan,我得以将其扩展:
function onEdit(e){
var cell = e.range; //Get cell that was edited
Logger.log(cell.getA1Notation());//Confirm cell
Logger.log(cell.getRowIndex()); //Confirm row
var row = cell.getRowIndex(); //Get row number
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('Name of Sheet');
var range = sheet.getRange(row,14); //Get the Created By column for the edited row
var value = range.getValues(); // Get the value in Created By
var aowner = "=vlookup(B:B,Config!A$1:B$10,2,false)"; //Look up owner for team A
var bowner = "=vlookup(B:B,Config!E$1:F$11,2,false)"; //Look up owner for team B
if (value [0] == "Team A") { //check if created by team A
sheet.getRange(row,17).setValue(bowner); //set owner to Team B contact
} else if (value [0] == "Team B") { //check if created by team B
sheet.getRange(row,17).setValue(aowner); //set owner to Team A contact
}
}