我试图想出一个脚本,它只是捕获一个单元格的值并将该值粘贴到另一个单元格中。它捕获的单元格值是一个简单的,未格式化的单元格,其中包含数字32.下面的代码可以工作,但目标单元格中的结果不是32。相反,结果是 [[32.0]] 。有人可以帮我理解添加括号和.0?
的内容function test(row) {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();// Define active sheet
var amountdue = sheet.getRange("A30").getValues();// Capture amount due
sheet.getRange("B30").setValue(amountdue);// Paste amount due
}
答案 0 :(得分:1)
您使用“getValues()
”的功能旨在捕获多个单元格。由于此函数旨在捕获表,因此它在输出中提供的结果不是一个单元格的值,而是几个单元格的值。要显示它们,我们需要将它们存储在易于访问和结构化的内容中:array
该数组表示为:[cell1Value,cell2Value,cell3Value,...]
由于可能有多行,我们将每一行存储在另一个数组中:[row1,row2,row3,...]。所以最后它是这样的:
[[row1Cell1,row1Cell2,...],[row2Cell1,row2Cell2,...]]
您不需要这些括号,请将“getValues()
”更改为“getValue()
”而不使用“s”。
或者当您设置值时使用:
amoutdue[0][0]
第一个[0]是说我想要第一行(我们从0开始)和第二个[0] ......你已经猜到了第一个单元格。
我想你在“32”之后得到“.0”因为你试图在一个单元格中设置数组。 Javascript不知道如何处理它并尝试以全文转换数组数组。