google-apps-script - 如果工作表名称已经存在,请在单元格中输入一条消息
问题描述
我编写了一个代码,该代码以单元格中的值命名工作表。我对代码非常陌生。
如果工作表名称已经存在,我想在它旁边的单元格中放置一条消息 -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.("")
并更改工作表名称。
解决方案
您只需要检查是否.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();
}
推荐阅读
- javascript - 如何以编程方式更改 Firefox 代理设置?
- python - 如何使用 flask-sqlalchemy 获得特定值?
- docker - 处理裸机中 kubernetese 上的暴露端口
- vba - Excel 加载项在具有选择更改事件的工作簿中不起作用
- javascript - 是否可以推迟 Javascript 中抛出的错误的执行?
- javascript - 在 OpenLiteSpee Web 服务器中托管 Angular 应用程序
- java - 回滚或重置 BufferedWriter
- angular - 使用 Angular HostBing 添加类而不擦除现有类
- debugging - 使用 Blackmagic probe 和 platformIO undefinedError 进行调试
- python - 如何在python中迭代列表中的项目?