我正在尝试将某些工作表的名称放在一列中(不包括我不想要的其他工作表的名称)。我已经创建了数组,但是它没有出现。我希望将信息放置在A3:A105
中。
我尝试使用indexOf
设置列的值。
function sheetNames() {
var out = [];
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
var exclude = ["About Me", "Contractors", "All Group Bids", "Bid Summary"];
var bidsheet = spreadsheet.getSheetByName("Bid Summary");
var column = bidsheet.getRange(3, 1, 105).getValue();
for (i = 0; i < sheets.length; i++) {
if (exclude.indexOf(sheets[i].getName()) === -1)
{column.setValue(out.push(sheets[i].getName()))};
return out;
}
}
//Nothing appears in the column.
答案 0 :(得分:1)
乍一看,我认为可能是'((((())'
。
尝试取出var column = bidsheet.getRange(3, 1, 105).getValue();
部分,因此getValue()
是Range
对象。然后,您可以稍后再在该范围内致电setValue
或setValues
。
注意:
SetValue
采用单个值,并且应在由单个单元格组成的范围内使用。例如:
column
SetValues
采用二维值数组,并且应设置为在多单元格数组上使用。例如:
var cell = sheet.getRange("B2");
cell.setValue(100);
与其每次遍历该循环都不调用var values = [
[ "2.000", "1,000,000", "$2.99" ]
];
var range = sheet.getRange("B2:D2");
range.setValues(values);
,而是一种更好的方法可能是使用该循环建立一个工作表名称数组,然后对setValue
进行一次调用以编写数据到您选择的范围。