【发布时间】:2020-01-07 08:27:23
【问题描述】:
能否请您协助编写一个简单的 Google 表格脚本,以便我获取如下所示的表格:
通过 1 次点击自动将其转换为此(即 - 不是删除 ROWS,而是删除并仅在空单元格上向上移动):
【问题讨论】:
标签: google-sheets concatenation transpose array-formulas google-sheets-query
能否请您协助编写一个简单的 Google 表格脚本,以便我获取如下所示的表格:
通过 1 次点击自动将其转换为此(即 - 不是删除 ROWS,而是删除并仅在空单元格上向上移动):
【问题讨论】:
标签: google-sheets concatenation transpose array-formulas google-sheets-query
【讨论】:
您要求的这个样品:
function adder()
{
var sheet = SpreadsheetApp.getActive().getSheetByName('Sheet2');
var lastRow = sheet.getLastRow();
for (var i = 1; i < lastRow+1; i++){
if((sheet.getRange('A'+(lastRow-i+1)).getValue()) + ""=="")
{
sheet.getRange('A'+(lastRow-i+1)).deleteCells(SpreadsheetApp.Dimension.ROWS);
}
//var valueB = sheet.getRange('B'+(lastRow-i+1)).getValue() + "";
if((sheet.getRange('B'+(lastRow-i+1)).getValue())=="")
{
sheet.getRange('B'+(lastRow-i+1)).deleteCells(SpreadsheetApp.Dimension.ROWS);
}
//var valueC = sheet.getRange('C'+(lastRow-i+1)).getValue() + "";
if((sheet.getRange('C'+(lastRow-i+1)).getValue())=="")
{
sheet.getRange('C'+(lastRow-i+1)).deleteCells(SpreadsheetApp.Dimension.ROWS);
}
}
}
【讨论】:
你可以用这个方法:
var sheet = SpreadsheetApp.getActive();
sheet.getRange('A12').deleteCells(SpreadsheetApp.Dimension.COLUMNS); // Cell left
sheet.getRange('A12').deleteCells(SpreadsheetApp.Dimension.ROWS); //cell up
或
var sheet = SpreadsheetApp.getActive();
var range = sheet.getRange('A12');
range.deleteCells(SpreadsheetApp.Dimension.COLUMNS);
range.deleteCells(SpreadsheetApp.Dimension.ROWS);
您必须从最后一行开始迭代,然后从底部开始逐个检查您的列 A、B、C 或其他单元格,如果为空白,则执行 range.deleteCells(SpreadsheetApp.Dimension.ROWS);
【讨论】: