累积正确的链接以在导入范围中使用,并将其作为字符串放入单元格中
importrange() 函数只接受两个参数:一个用于读取电子表格,另一个用于指定要返回电子表格中的哪个范围。要使用 importrange() 从多个电子表格和/或范围中读取数据,您必须创建多个公式。
或者,使用模仿 importrange() 但支持多个电子表格和范围的 Apps 脚本函数,例如 ImportMultipleRanges() 函数。你可以这样称呼它:
function updateDataFromOtherSpreadsheets() {
var rangeToUpdate = "All Data!A2";
var sourceSpreadsheetKeysRange = "Config!B2:B5";
var sourceSpreadsheetDataRange = "Config!C2:C5";
var add_spreadsheet_name_prefix = false;
var add_sheet_name_prefix = false;
var ignore_blank_rows = true;
var ss = SpreadsheetApp.getActive();
var spreadsheet_keys = ss.getRange(sourceSpreadsheetKeysRange).getValues();
var range_strings = ss.getRange(sourceSpreadsheetDataRange).getValues();
var data = ImportMultipleRanges(spreadsheet_keys, range_strings, add_spreadsheet_name_prefix, add_sheet_name_prefix, ignore_blank_rows);
ss.getRange(rangeToUpdate).offset(0, 0, data.length, data[0].length).setValues(data);
}
要回答您的问题,您可以像这样修复函数中的语法错误和语义:
function updateImportrangeFormula() {
const sheet = SpreadsheetApp.getActiveSheet();
const ssId = sheet.getRange('B2').getValue();
const rangeA1 = sheet.getRange('C2').getValue();
const formula = '=importrange("' + ssId + '", "' + rangeA1 + '")';
sheet.getRange('B3').setFormula(formula);
}