javascript - 根据 TEXT 消息框从多个工作表中删除行
问题描述
希望根据输入框更改此脚本以处理超过 1 张工作表(工作表 1、工作表 2、工作表 3)。我能够将名称添加到工作表中,方法是在脚本中分别调用每个名称,然后根据文本执行添加,但我不知道如何删除。这是我在这里从 Mogsdad 找到的脚本,我希望能够成功。
function Deletename() {
var value_to_check =
Browser.inputBox(
"Enter First and Last Name to Delete",
"",
Browser.Buttons.OK_CANCEL);
var FIRST_COLUMN = 1
var ss = SpreadsheetApp.getActiveSpreadsheet();
var DATA_SHEET =
SpreadsheetApp.getActiveSpreadsheet()
.getActiveSheet();
ss.toast("removing duplicates...", "", -1);
var dataCopy1 = DATA_SHEET.getDataRange().getValues();
var deleted_rows = 0;
if (dataCopy1.length > 0) {
var i = DATA_SHEET.getLastRow(); // start at bottom
while (i > 0) {
if (dataCopy1[i - 1][FIRST_COLUMN - 1] === value_to_check) {
ss.deleteRow(i);
deleted_rows++;
}
i--;
}
}
ss.toast("Done! " + deleted_rows + ' rows removed', "", 5);
}
解决方案
不是检索活动工作表,而是遍历所有工作表
- 目前,您定义
var DATA_SHEET = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
- 这会将您的请求仅应用于活动工作表
- 相反,您可以使用ss.getSheets()检索电子表格的所有工作表,并在循环内
DATA_SHEET
依次定义每个可用工作表 - 像以前一样在循环中运行其余代码,但要小心删除行:
- 如果您有多个工作表,请更改
ss.deleteRow(i);
为DATA_SHEET.deleteRow(i);
删除当前循环通过的工作表中的行,而不是活动的行
样本:
function Deletename() {
var value_to_check =
Browser.inputBox(
"Enter First and Last Name to Delete",
"",
Browser.Buttons.OK_CANCEL);
var FIRST_COLUMN = 1
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheets = ss.getSheets();
for (var a = 0; a < sheets.length; a++){
var DATA_SHEET = sheets[a];
ss.toast("removing duplicates...", "", -1);
var dataCopy1 = DATA_SHEET.getDataRange().getValues();
var deleted_rows = 0;
if (dataCopy1.length > 0) {
var i = DATA_SHEET.getLastRow(); // start at bottom
while (i > 0) {
if (dataCopy1[i - 1][FIRST_COLUMN - 1] == value_to_check) {
DATA_SHEET.deleteRow(i);
deleted_rows++;
}
i--;
}
}
}
ss.toast("Done! " + deleted_rows + ' rows removed', "", 5);
}
推荐阅读
- c# - 保存资产时Unity Broken text PPtr
- html - 如何在 Marp 或 Marpit 中对齐文本标题下方的图像
- html - Django将单词添加到图像url
- wordpress - Wordpress 如何将自定义帖子类型直接链接到自定义字段而不是父帖子页面
- docker - FirewallD 阻止到 Docker 容器的入站连接 OpenSUSE Leap 15.3
- javascript - 按住箭头键在反应中滚动网格
- python - PostgreSQL 错误“无法连接到服务器
- javascript - 如何跟踪每个点击的项目是否之前被点击过(或者是它的第一次点击)
- go - 用于orm方法的Golang gorm联合函数
- css - 基于内容高度的 CSS-Grid 填充行