首页 > 解决方案 > 如果工作表名称已经存在,请在单元格中输入一条消息

问题描述

我编写了一个代码,该代码以单元格中的值命名工作表。我对代码非常陌生。

如果工作表名称已经存在,我想在它旁边的单元格中放置一条消息 -cell.setValue.("Sheet name already exists.")
如果它不存在cell.setValue.("")并更改工作表名称。

我怎样才能做到这一点?

我尝试了许多不同的 if 语句,但都没有奏效。运行它们后我收到一条错误消息,说工作表名称已经存在。我的代码的基础如下。

function onEdit() {

  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var oldsheetname = SpreadsheetApp.getActiveSheet().getName();

  var newsheetname = SpreadsheetApp.getActiveSheet().getRange(2,1).getValue();
  var cell = SpreadsheetApp.getActiveSheet().getRange(2,2);


   if (oldsheetname !== newsheetname && newsheetname !== "")
  {SpreadsheetApp.getActiveSheet().setName(newsheetname) && cell.setValue("") };}

如果工作表名称已经存在,我想在它旁边的单元格中放置一条消息 -cell.setValue.("Sheet name already exists.")如果它不存在cell.setValue.("")并更改工作表名称。

标签: google-apps-script

解决方案


您只需要检查是否.getSheetByName(oldname)返回 true 并.setValue()相应地使用:

if (SpreadsheetApp.getActiveSpreadsheet.getSheetByName(oldname)){
  SpreadsheetApp.getActiveSheet().getRange(2, 2).setValue("Sheet name already exists");
}
else {
  SpreadsheetApp.getActiveSheet().getRange(2, 2).clear();
}

推荐阅读