我可以根据另一个单元格答案向单元格添加特定句子吗?

时间:2015-06-01 17:33:24

标签: google-apps-script google-sheets

我有一个脚本可以根据答案移动行。我可以根据另一个单元格的答案添加一个带有静态句子的单元格吗?

例如,如果Spreadsheet1中的X1为“是”,则会添加句子“您的工作成功”。到Spreadsheet2中的单元格F1?

这是我的剧本:

function onEdit(e) {
  var columnNumberToWatch = 24; // column A = 1, B = 2, etc.
  var valueToWatch = ["Yes", "NA"];
  if ( e.range.getColumn() == columnNumberToWatch &&     valueToWatch.indexOf(e.range.getValue()) >=0  ) {
var sourceSheetName = "Q2 2015 v2";
var destSheetName = "2015 Backyard Badge";
var sourceRow = e.range.getRow();
var sourceSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sourceSheetName);
var destSheet = SpreadsheetApp.openById("1g3yhsACEWAT4dzAPjB-WaizmivIjnpISEoF3mxiRik4").getSheetByName(destSheetName);
var destRow = destSheet.getLastRow() + 1;
if ( destSheet.getMaxRows() < destRow) {
  destSheet.insertRowAfter(destSheet.getLastRow());
}
var columnMap = {
  'D' : 'A',
  'W' : 'B',
  'A' : 'C',
  'B' : 'D',
  'W' : 'I',
  'X' : 'J'

};
var columnList = [];
for (var column in columnMap) {
  if (columnMap.hasOwnProperty(column)) {
    columnList.push(column);
  }
};
for (var i = 0; i < columnList.length; i++) {
  var sourceRangeText = columnList[i] + sourceRow;
  var destRangeText = columnMap[columnList[i]] + destRow;
  var sr = sourceSheet.getRange(sourceRangeText);
  var dr = destSheet.getRange(destRangeText);
  var sourceVal = sr.getValue();
  dr.setValue(sourceVal);
    }
  }
}

提前致谢。

1 个答案:

答案 0 :(得分:0)

使用调试器,一次一行地执行代码。为此,您需要对代码进行一些更改。硬编码一些值,仅用于测试:

function onEdit(e) {

  var editedCol = 24; //e.range.getColumn()
  var editedValue = 99; //e.range.getValue()
  var editedRow = 10; //e.range.getRow()

  var columnNumberToWatch = 24; // column A = 1, B = 2, etc.
  var valueToWatch = ["Yes", "NA"];
  if (editedCol == columnNumberToWatch && valueToWatch.indexOf(editedValue) >=0  ) {

上面的代码会从某些地方删除e.range.method(),并将变量放在其中。这样您就可以调试代码了。这里的解释是长期放入评论部分,所以我把它放在答案中。通过这些更改,您无需先编辑电子表格即可运行代码。这是必需的,以便您可以运行调试器。

Debug

单击代码编辑器中的行号,以便显示红点。使用错误图标右侧字段中的“onEdit”功能,单击错误图标。然后单击“Step In”按钮运行一行代码。查看底部窗口中的所有值。逐步执行每行代码,直到找到意外结果。