老VBA狗试图学习新的JS技巧。
当单元格值="显示"
时,我需要修改下面的代码以返回行号function myFunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet(); //active workbook
var sheet = SpreadsheetApp.getActiveSheet(); //active sheet
var range = sheet.getRange("ShowHideRows")
range.getValues().forEach(function(row) {
row.forEach(function(cell) {
if (cell == "Show") {
sheet.showRows(cell)
}
});
});
}
答案 0 :(得分:1)
你应该这样做:
function MyFunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet(); //active workbook
var sheet = SpreadsheetApp.getActiveSheet(); //active sheet
var range = sheet.getRange("ShowHideRows")
range.getValues().forEach(function(row, rowIndex) {
row.forEach(function(cell) {
if (cell == "Show") {
sheet.showRows(cell);
return rowIndex;
}
});
});
}
您可以传递.forEach
方法的值和索引。
答案 1 :(得分:0)
谢谢鲁本,你的建议奏效了。代码的目的是便于过滤表行的显示。在这种情况下,有一个列,其范围名称为“ShowHideRows”,并且与表相邻。代码将遍历'ShowHideRows'中的每一行,如果cell =“Hide”则隐藏该行。这是工作代码。
function hideRows() {
var ss = SpreadsheetApp.getActiveSpreadsheet(); //active workbook
var sheet = SpreadsheetApp.getActiveSheet(); //active sheet
var range = sheet.getRange("ShowHideRows");
var firstRow = range.getRow();
range.getValues().forEach(function(row, rowIndex) {
row.forEach(function(cell) {
if (cell == "Hide") {
sheet.hideRows(rowIndex + firstRow);
}
})
})
}