我试图应用一个脚本,将在整个谷歌工作表电子表格上运行,而不仅仅是一个标签。我有多个选项卡都具有相同的格式;我希望脚本查看每个选项卡在F列中的数据验证,如果为任何行选择了“不适用”,则将整行的内容移动到一个名为“不适用项”的选项卡"
我没有编写脚本的经验,所以我从一个论坛主题中复制了我目前使用的脚本。它成功地将行移动到正确的选项卡,但仅限于指定的活动工作表。我希望脚本查看整个电子表格,并移动标记为“不适用”的任何行
我该怎么做?这是我的密码:
function onEdit() {
var sheetNameToWatch = "Floorplan + Calendars";
var columnNumberToWatch = 5; // column A = 1, B = 2, etc.
var valueToWatch = "Not Applicable";
var sheetNameToMoveTheRowTo = "Not Applicable Items";
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getActiveCell();
if (
sheet.getName() == sheetNameToWatch &&
range.getColumn() == columnNumberToWatch &&
range.getValue() == valueToWatch
) {
var targetSheet = ss.getSheetByName(sheetNameToMoveTheRowTo);
var targetRange = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
sheet
.getRange(range.getRow(), 1, 1, sheet.getLastColumn())
.moveTo(targetRange);
sheet.deleteRow(range.getRow());
}
您可以通过以下操作获取for循环中的每个电子表格
for(var i = 0; i < [number of sheets]; i++){
sheet = ss.getSheets()[i];
. . . [rest of the code]
}
并在for循环中包含您试图对每张图纸执行的操作。
给定项目中的所有脚本都可以访问电子表格中的所有工作表。这就是为什么我们建议您这样编写OneEdit(e)脚本:
function onEdit(e) {
var sh=e.range.getSheet();
if(sh.getName()!="Sheet Name") return;
这限制了脚本对不需要的工作表执行操作。
但是,在您的情况下,您希望所有工作表都参与onEdit(e)函数,因此没有必要这样做。
就我个人而言,我不会在onEdit()函数中运行此函数,因为它可能需要超过30秒的时间。但是您请求的功能是通过以下脚本实现的。感叹号是一个工作表名称数组,您不希望将其包括在“不适用”搜索中,就像名为“不适用项”的工作表一样。
function notApplicable() {
var ss=SpreadsheetApp.getActive();
var dsh=ss.getSheetByName('Not Applicable Items')
var exclA=["Not Applicable Items"];
var shts=ss.getSheets();
for(var i=0;i<shts.length;i++) {
var name=shts[i].getName();
if (exclA.indexOf(shts[i].getName())==-1) {
var sh=shts[i];
var rg=sh.getDataRange();
var vA=rg.getValues();
var d=0;
for(var j=0;j<vA.length;j++) {
if(vA[j][5]=="Not Applicable") {
dsh.appendRow(vA[j]);
sh.deleteRow(j+1-d++)
}
}
}
}
}
我认为很多用户过度使用了onEdit()功能。
我有一个谷歌电子表格,有两张叫做罗宾和露西的表格。每次我向列A添加一些数据时,我都制作/找到/破坏了一个脚本来对工作表上的数据进行排序 这个剧本很棒,但我只想把它应用在第一张纸上,罗宾。第二个工作表中的数据,Lucy,是不一样的,所以我将创建另一个脚本为不同的范围,一旦我得到了这个问题的头脑。 我想我需要使用getSheetByName(“罗宾”),但我似乎无法让它工作。提前感谢
我试图使用原子电子为Mac和Windows编写桌面应用程序。 我需要的是: 一个按钮。 当用户单击按钮时,它将运行以下shell(或python脚本): 结果将显示在文本区域中。 我试着使用[shelljs]和[yargs],但它似乎不适用于原子电子。 所有我想要的是使用JAVASCRIPT编写桌面应用程序(当然是GUI),调用一些脚本(shell 如有任何建议,将不胜感激,谢谢:)
我的程序是这样工作的:
我有这张表: 个人财务表 我使用此脚本对A列和B列进行“OneEdit”排序: 现在,我不想对A列进行排序,而是对其进行筛选,以便不显示选中的复选框: 想要过滤视图 似乎与和有关,但我真的搞不清楚。 有人能帮帮我吗? 谢谢
如何使用Google应用程序脚本在Google电子表格中合并多个选项卡?所有选项卡中的数据都在不断变化。 例如,我在谷歌电子表格中有“Sheet1”、“Sheet2”和“Sheet3”。所有这些表中的数据都有3列-名称和电子邮件ID