感谢大家 .
我有一张包含7张的Google电子表格 . 我正在尝试将最后一页中的数据从单元格A1:D1移动到附加到同一工作表底部的新行 .
这是我正在使用的代码片段:
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[6];
var src = sheet.getRange('PaycheckHistory!A1:D1').getValues();
sheet.appendRow([src]);
运行代码后,在“PaycheckHistory”选项卡上,在工作表底部附加的新行中,我得到以下内容:“[Ljava.lang.Object; @ 3e0d05f9”
有人可以告诉我(a)这个错误是什么,(b)这意味着什么,以及(c)我如何解决这个问题或执行我的目标,即“将最后一页中的数据从单元格A1:D1移动到一个新行附加到同一张纸的底部 . “
谢谢,全部!
6/22/18 IDK如果这会有所帮助,但在屏幕上找不到“更新此问题”按钮,显示我原来的帖子 . 然而,我发现了一个“编辑”按钮,我现在正在使用它 .
这是我正在使用的 complete 代码:(如果代码格式不正确,则道歉)
function onOpen() {
var ui = SpreadsheetApp.getUi();
ui.createMenu('Tasks')
.addItem('createCopy','createCopy')
.addToUi();
}
function createCopy() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[6];
var src = sheet.getRange('PaycheckHistory!A1:D1').getValues();
sheet.appendRow(src[0]);
SpreadsheetApp.flush();
var myValue =
. SpreadsheetApp.getActiveSpreadsheet()getActiveSheet()getRange( “ø58”)的getValue() . ; var destinationFolder = DriveApp.getFolderById(“1errc7-2sM ********** ZPKJIxjZOTRWo”);
. DriveApp.getFileById(SpreadsheetApp.getActiveSpreadsheet()的getId())makeCopy(myvalue的,destinationFolder);
}
这是我得到的问题:函数的第一部分(ABOVE“SpreadsheetApp.flush();”)移动电子表格第6页上的数据 . 函数的下一部分(下面是“SpreadsheetApp.flush();” )复制整个电子表格,将副本放入指定的文件夹,然后重命名该副本 .
我希望此功能在电子表格文件中的其他选项卡/工作表上执行更多操作 . 我可以编写额外的代码来执行此操作,但是当我将新代码添加到上面的现有函数时,新代码什么都不做 . 只需使用“SpreadsheetApp.flush();”不起作用 .
1 回答
回答(a)
由
getValues()
检索的值是二维数组 . 当它看到appendRow(rowContents)
的用法时,rowContents
是1维数组 . 在脚本中,运行此sheet.appendRow([src])
时,将使用3维数组 . 所以放这样的字符串 .回答(b)
关于
[Ljava.lang.Object;@
,您可以在以下主题中查看信息 .[What does "Ljava.lang.Object;@" mean?
[java: what is this: Ljava.lang.Object;?
回答(c)
为了避免这样的字符串,在脚本的情况下,请修改如下 .
来自:
收件人:
参考:
如果我误解你的问题,我很抱歉 .