当行从一个选项卡移动到另一个选项卡时,Google App 脚本不会复制超链接 -

问题描述 投票:0回答:1

我需要将所有超链接单元格在移动后复制到选项卡 - 当我的客户从“打开”移动到“已交付”时,它需要能够返回到该链接的选项卡

我不是专业人士,但这是我当前的脚本 - 不确定我做错了什么:

function onEdit(e){
let col = range.getColumn();
let row = range.getRow();
let val = range.getValue();
let source = e.source.getActiveSheet();

if (col == 9 && val != ''){
let ss = SpreadsheetApp.getActiveSpreadsheet();
let sheet = ss.getSheetByName(source.getName());
let targetSheet = ss.getSheetByName(val);
let data = sheet.getRange(row,1,1,sheet.getLastColumn()).getRichTextValues();
targetSheet.getRange(targetSheet.getLastRow()+1,1,1,data[0].length).setRichTextValues(data);
targetSheet.getRange(targetSheet.getLastRow(),1).clearContent();
  sheet.deleteRow(row);
 }
 }

它复制了该行的其余部分,但现在复制了带有超链接的单元格-

谢谢!

我没有尝试太多编辑脚本,因为我不确定错误发生在哪里,因为当我运行它时没有任何显示不正确

google-sheets google-apps-script hyperlink richtext
1个回答
0
投票

使用copyTo保留超链接的格式

就像@Saddles所说,如果您希望在移动到其他Google表格选项卡时保留超链接格式,则可以使用

copyTo

我修改并删除了你的一些代码以得到你想要的输出。


我更改了此代码:

let data = sheet.getRange(row, 1, 1, sheet.getLastColumn()).getRichTextValues();

致:

let data = sheet.getRange(row, 1, 1, sheet.getLastColumn());

并替换此代码:

targetSheet.getRange(targetSheet.getLastRow() + 1, 1, 1, data[0].length).setRichTextValues(data);
targetSheet.getRange(targetSheet.getLastRow(), 1).clearContent();

与:

data.copyTo(targetSheet.getRange(targetSheet.getLastRow() + 1, 1), { contentsOnly: false })

而且,我在您的代码中添加了

e.range

完整代码:

function onEdit(e) {
  let range = e.range;
  let col = range.getColumn();
  let row = range.getRow();
  let val = range.getValue();
  let source = e.source.getActiveSheet();

  if (col == 9 && val != '') {
    let ss = SpreadsheetApp.getActiveSpreadsheet();
    let sheet = ss.getSheetByName(source.getName());
    let targetSheet = ss.getSheetByName(val);
    let data = sheet.getRange(row, 1, 1, sheet.getLastColumn());
    data.copyTo(targetSheet.getRange(targetSheet.getLastRow() + 1, 1), { contentsOnly: false })
    sheet.deleteRow(row);
  }
}

示例输出:

Sample output

注意:我只是假设你的样本表是这样的。

参考:

© www.soinside.com 2019 - 2024. All rights reserved.