Javascript 如何在所有工作表、谷歌工作表上运行脚本
我有一个脚本,可以删除谷歌工作表中的空行。目前它只在我打开的工作表上运行;我希望它在文档中的所有工作表上运行 在花了很长时间尝试应用来自其他人问题的代码之后,我似乎无法让它与我现有的代码一起工作 任何答案都将不胜感激 这是我试图使用的一段代码,但无法运行Javascript 如何在所有工作表、谷歌工作表上运行脚本,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,我有一个脚本,可以删除谷歌工作表中的空行。目前它只在我打开的工作表上运行;我希望它在文档中的所有工作表上运行 在花了很长时间尝试应用来自其他人问题的代码之后,我似乎无法让它与我现有的代码一起工作 任何答案都将不胜感激 这是我试图使用的一段代码,但无法运行 function saveRange(){ var tabs = [ 'Sample_tab_1', 'Sample_tab_2', 'Sample_tab_3', 'Sa
function saveRange(){
var tabs = [
'Sample_tab_1',
'Sample_tab_2',
'Sample_tab_3',
'Sample_tab_4'
];
var ss=SpreadsheetApp.getActiveSpreadsheet();
for (var i = 0; i < tabs.length; i++) {
var sheet=ss.getSheetByName(tabs[i]);
var range=sheet.getRange('A8:AE47').getValues();
sheet.getRange(sheet.getLastRow()+1, 1, range.length, range[0].length).setValues(range);
}
}
函数存储范围(){
变量选项卡=[
“样本选项卡1”,
“样本选项卡2”,
“样本选项卡3”,
“样本选项卡4”
];
var ss=SpreadsheetApp.getActiveSpreadsheet();
对于(变量i=0;i
这是我的作品,但只有在当前的工作表
function readRows() {
var sheet = SpreadsheetApp.getActiveSheet();
var rows = sheet.getDataRange();
var numRows = rows.getNumRows();
var values = rows.getValues();
var rowsDeleted = 0;
for (var i = 0; i <= numRows - 1; i++) {
var row = values[i];
if (row[2] == 0 || row[2] == '') {
sheet.deleteRow((parseInt(i)+1) - rowsDeleted);
rowsDeleted++;
}
}
};
function onOpen() {
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var entries = [{
name : "Remove rows where column C is 0 or blank",
functionName : "readRows"
}];
sheet.addMenu("Script Center Menu", entries);
};
函数readRows(){
var sheet=SpreadsheetApp.getActiveSheet();
var rows=sheet.getDataRange();
var numRows=rows.getNumRows();
var values=rows.getValues();
var rowsDeleted=0;
对于(var i=0;i您可以尝试此代码段,但请小心,这将清除当前google电子表格中的每个工作表:
function readRows()
{
var spreadsheet = SpreadsheetApp.getActive();
var ttl = spreadsheet.getSheets().length;
for (var a=0; a<ttl; a++)
{
spreadsheet.getSheets()[a].clear()
//if you prefer to delete, please replace the above
}
}
函数readRows()
{
var电子表格=SpreadsheetApp.getActive();
var ttl=电子表格.getSheets().length;
对于(var a=0;a为了正确了解您的情况,您能否提供有关的不运行
的详细信息这是我尝试使用的一段代码,但它不会运行
?因为我认为存储范围()
适用于“样本选项卡1”、“样本选项卡2”、“样本选项卡3”和“样本选项卡4”的工作表名称。同上-保存范围()
工作正常。请引用您收到的确切错误消息。您从示例中克隆的数据将始终仅删除当前工作表中的行,因为您不指定删除其他工作表中的行。您只需使用var sheet=SpreadsheetApp.getActiveSheet()指定唯一的活动工作表即可;您的代码段分配了一些工作表,但在脚本中,您只分配了当前活动的工作表。好的@user11982798有意义的是,是否有一个操作代替了var spreadsheet=SpreadsheetApp.getActive();这将得到所有工作表?+1。为了在工作表上进行迭代,可以使用一个很好的选项。非常感谢您的回复。它确实会删除当前工作表中所有预期的行,但不是在所有工作表上执行相同的操作,而是每隔一个工作表完全清除一行。我只需遵循您的条件行[2]==0 | |行[2]=='',但实际上我不知道你每张表中的内容。我在我的答案中添加了修改功能,请检查并复习
function readRows()
{
var spreadsheet = SpreadsheetApp.getActive();
var ttl = spreadsheet.getSheets().length;
for (var a=0; a<ttl; a++)
{
var sheet = spreadsheet.getSheets()[a];
var rows = sheet.getDataRange();
var numRows = rows.getNumRows();
var values = rows.getValues();
var rowsDeleted = 0;
for (var i = 0; i <= numRows - 1; i++)
{
var row = values[i];
if (row[2] == 0 || row[2] == '')
{
sheet.deleteRow((parseInt(i)+1) - rowsDeleted);
rowsDeleted++;
}
}
}
};
function readRowsModify()
{
var spreadsheet = SpreadsheetApp.getActive();
var ttl = spreadsheet.getSheets().length;
for (var a=0; a<ttl; a++)
{
var sheet = spreadsheet.getSheets()[a];
var rows = sheet.getDataRange();
var numRows = rows.getNumRows();
var values = rows.getValues();
//if row 1 is header change i>0 to i>1
for (var i = numRows; i>0; i--)
{
var row = values[i-1];
//if in this row, column c is 0 or column c is '' or column c is undifined,
//please correct define in this filter to delete row
if (row[2] == 0 || row[2] == '' || row[2] == undefined)
{
sheet.deleteRow(i);
}
}
}
};