我打算写一个代码,将数据导入我的活动工作表中。
该脚本是独立的 - 将是一个附加组件
活动工作表将是新的(变量ID)
主工作表具有已知/静态ID
我的解决方案是使用Logger记录我的活动工作表的ID。我将时间信息从前面切片,只留下Id。 我遇到了两个问题:
将切片记录器输出定义为变量会导致空白输出。我检查了这个:
function misc() {
var wb3 = SpreadsheetApp.getActiveSpreadsheet().getName();
var wb2 = Logger.getLog().slice(35,999);
Logger.log(wb3);
Browser.msgBox(wb2);
Logger.clear()
}
除“确定”按钮外,我的消息框显示为空白。 使用Browser.msgBox(Logger.getLog()。slice(35,999))会生成一个带有我的工作表ID的消息框,所以我可以使用它。只是不整洁。
我在下面写了一个脚本来复制我的主人的数据:
function import() {
var wb1 = SpreadsheetApp.getActiveSpreadsheet().getId();
Logger.log(wb1);
var ssa = SpreadsheetApp.getActiveSpreadsheet().getSheetById('MASTER_SHEET_ID').getSheetByName("ToTo");
ssa.getRange('A1:C6').copyTo(SpreadsheetApp.openById(Logger.getLog().slice(35,999)).getSheetByName("ToTo").getRange('A1:C6'))
}
感谢任何帮助。谢谢!
答案 0 :(得分:0)
我认为空白对话框是正确的。尝试将Logger.getLog()向下移动一行。
function misc() {
var wb3 = SpreadsheetApp.getActiveSpreadsheet().getName();
var wb2 = Logger.getLog().slice(35,999);//Nothing in logger yet
Logger.log(wb3);//Now there's something in logger
Browser.msgBox(wb2);
Logger.clear()//Now there's nothing in logger
}
我认为这是不正确的链接,您无法获取ID,然后是getSheetByName。
var ssa = SpreadsheetApp.getActiveSpreadsheet().getSheetById('MASTER_SHEET_ID').getSheetByName("ToTo");
我的建议是不要试图过于喜欢链接。在调试代码以访问中间变量时,它实际上更有用。我的猜测是每个人都调试代码。