繁体   English   中英

使用变量插入SpreadsheetApp.openById

[英]Use a variable to insert into a SpreadsheetApp.openById

我想用电子表格中的变量定义一个ID,然后用它在代码中打开该电子表格。 请参阅下面的第4和5行。 由于某些原因,该方法无法正常工作-我无法从电子表格中提取ID(getValue,然后将其插入到SpreadsheetApp.openById代码行中)。

我知道代码有效,因为如果我在代码本身中定义ID,它就会起作用。 但是由于某种原因,我无法从电子表格中提取它。

var sss = SpreadsheetApp.getActiveSpreadsheet();
var Brand1 = sss.getSheetByName('Brand 1');
var Brand1Data = Brand1.getRange('a5:z').getValue();
var key1 = Brand1.getRange('a3').getValues();
var Brand1Spreadsheet = SpreadsheetApp.openById(key1);
var BrandDatabase = Brand1Spreadsheet.getSheetByName('Database');
BrandDatabase.getRange(BrandDatabase.getLastRow()+1,3,Brand1Data.length, Brand1Data[0].length).setValues(Brand1Data);

无法从工作表获取ID的原因是您使用的是getValues()函数而不是getValue()请注意,第二个函数末尾没有's'。 getValue()返回特定单元格的值(或特定范围内第一个单元格的值),而getValues()返回包含该范围内所有值的数组。 即使范围中只有一个单元格,它也会返回一个数组。 因此,获取电子表格ID的代码行如下:

var key1 = Brand1.getRange('a3').getValue();

另外,我认为您还需要修改您的Brand1Data:

var Brand1Data = Brand1.getRange('a5:z').getValues();

获取该范围内的所有值。

您的固定代码如下所示:

var sss = SpreadsheetApp.getActiveSpreadsheet();
var Brand1 = sss.getSheetByName('Brand 1');
var Brand1Data = Brand1.getRange('a5:z').getValues();
var key1 = Brand1.getRange('a3').getValue();
var Brand1Spreadsheet = SpreadsheetApp.openById(key1);
var BrandDatabase = Brand1Spreadsheet.getSheetByName('Database');
BrandDatabase.getRange(BrandDatabase.getLastRow()+1,3,Brand1Data.length, Brand1Data[0].length).setValues(Brand1Data)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM