我是新的谷歌腳本,並遇到我無法弄清楚的東西。我試圖命名一個範圍,希望最終將其放入一個數組中,並用數據填充另一個表。谷歌腳本的電子表格 - 錯誤:參數必須是範圍
我遇到了命名該範圍的問題。我希望最終能夠遍歷並命名多個範圍,所以我希望能夠爲行號使用變量。
如果我試試這個:
var rngProject = "A8:Y21";
var RngName = "project1";
然後一切正常,我有一個數組中的數據。但是,如前所述,我想使用行號的變量以及範圍名稱,如下所示。
如果我試試這個:
var rngProject = "A" + strtRow + ":Y" + totRows + strtRow - 1;
var RngName = "project" + toString(i);
在此行中:
var rng_to_name = active_spreadsheet.getSheetByName(sheet_name).getRange(address);
我收到錯誤: 「參數必須是一個範圍。」在調試器中,地址值顯示爲NaN,所以我認爲這是不對的。但我也嘗試過使用strRange(註釋如下),並且在同一行上出現相同的錯誤。
有沒有辦法讓我把這個值轉換成範圍類型,還是有其他的我做錯了?
function namePrjRange() {
var i = 1
var strtRow = 8;
var shtName = "USER INPUT by week: TEST";
var totRows = 14;
//var strRange = "A" + toString(strtRow) + ":Y" + toString(totRows + strtRow - 1);
var rngProject = "A" + strtRow + ":Y" + totRows + strtRow - 1;
var RngName = "project" + toString(i);
//Logger.log(strRange);
Logger.log(rngProject);
Logger.log(RngName);
nameRange(shtName, rngProject, RngName);
}
// Given a sheet name (assumed to be in the active spreadsheet, an address using "A1" notation,
// and a name string, assign that name to the range address in the given sheet.
function nameRange(sheet_name, address, rng_name) {
// Create an spreadsheet object.
Logger.log("Entered nameRange function")
var active_spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
// Get a range object by firstly getting a sheet object from the spreadsheet object and then pass the
// "address" argument to the sheet "getRange()" method.
var rng_to_name = active_spreadsheet.getSheetByName(sheet_name).getRange(address);
// Use the spreadsheet object method "setNamedRange()" to assign a range name to a range object.
Logger.log("About to set Named Range");
Logger.log(rng_name);
Logger.log(rng_to_name);
active_spreadsheet.setNamedRange(rng_name, rng_to_name);
}
就是這樣!非常感謝! – brl8 2013-04-08 15:22:53