首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >尝试使用应用程序脚本将评论从一个谷歌工作表复制到另一个位置的工作表副本

尝试使用应用程序脚本将评论从一个谷歌工作表复制到另一个位置的工作表副本
EN

Stack Overflow用户
提问于 2019-08-27 23:11:44
回答 1查看 1.2K关注 0票数 1
  • 尝试将评论从一个谷歌工作表复制到另一个位置的工作表副本。
  • 似乎没有copyTo(),所以我正在尝试moveTo()
  • 寻找更多的想法。

将其包括在下面的代码中

它在同一个工作簿中工作:

代码语言:javascript
运行
复制
// This works
function copyCellAndComments() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Source_Sheet");
  var targetSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Destination_Sheet");
  sheet.getRange("P21:26").moveTo(targetSheet.getRange("P21:26"));
};
代码语言:javascript
运行
复制
// I run into permissions issues if I try something like
function copyCellAndComments02() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Source_Sheet");
代码语言:javascript
运行
复制
  //This didn't work.  Told me formatted wrong
  var targetSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Spreadsheet URL", "Sheetname");
代码语言:javascript
运行
复制
  // I tried using SpreadsheetApp.openById() as well as SpreadsheetApp.openByUrl() in the script and it told me I don't have sufficient permissions to run openById or openByUrl.
代码语言:javascript
运行
复制
    // (Error
Exception: You do not have permission to call SpreadsheetApp.openByUrl. Required permissions: https://www.googleapis.com/auth/spreadsheets )
代码语言:javascript
运行
复制
  // Also tried creating a standalone function and calling the function within the sheet.
function importComments(spreadsheetKey,a1NotationReference) {
    return SpreadsheetApp.openByUrl(spreadsheetKey).getRange(a1NotationReference).getComments();
};

在网上找到了一些东西,上面写着如果我添加了一个菜单并从菜单中调用它,它就会运行。

代码语言:javascript
运行
复制
     // That generates an Error - Exception: Invalid argument: url (line 7, file "MyScripts_RickP")

我试过了。Thant在注释中复制文本,但不作为注释。

还尝试将其作为一个围绕importrange的查询进行处理。同样的结果。

这是我试着复制的测试评论

代码语言:javascript
运行
复制
  sheet.getRange("P6").moveTo(targetSheet.getRange("P6"));
};

因为我还没有找到一种方法来把它的注释原封不动地复制成注释(注释文本可以复制,但我需要将它作为注释)复制到Archive位置。

EN

回答 1

Stack Overflow用户

发布于 2019-08-28 11:07:11

问题

  1. getSheetbyName(姓名)只允许您从同一个电子表格中检索工作表,并且要求您只指定工作表名称,而不需要电子表格URL。
  2. 推导了电子表格的getComments()方法。这个功能有一个特征请求,但是目前还没有实现。

解决办法

  • 如果您想要将复印一张纸放到不同的电子表格中,您可以这样做:
代码语言:javascript
运行
复制
  var targetSheet=SpreadsheetApp.openById('SPREADSHEETID');
SpreadsheetApp.getActive().getSheetByName("Source_Sheet").copyTo(targetSheet);

但是,这将不会复制评论。

  • 其他复制方法(如SpreadsheetApp.getActive().copy('This is a copy');DriveApp.getFileById(SpreadsheetApp.getActive().getId()).makeCopy(); )也是如此。
  • 您可以使用高级驱动服务检索注释:

var comments=Drive.Comments.list(SpreadsheetApp.getActive().getId());

  • 您可以使用检索到的注释在目标文件中创建注释,例如:

Drive.Comments.insert({"content":comments.items[0].content, "context":comments.items[0].context, "author":comments.items[0].author}, targetSheet.getId());

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57683221

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档