Google Sheet 脚本,用于将超链接文本复制到新选项卡中

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

我在 GoogleSheet Appscript 上使用的脚本将一行移动到新选项卡时,任何超链接文本都不会粘贴到新选项卡。我该如何解决这个问题?

Google 表格链接:https://docs.google.com/spreadsheets/d/1-ucJ0GmfbKIPvpwwneFVIoaM8orvAYt9NkT6m7UTDeo/edit?usp=sharing

如果您查看“潜在客户”选项卡中的 GoogleSheet,我会在 K 列下超链接单词“链接”。当我将 A 列中的状态更改为潜在客户时,它只会复制单词文本,而不会附加链接。

代码:

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 == 1 && val != '') {
    let ss = SpreadsheetApp.getActiveSpreadsheet();
    let sheet = ss.getSheetByName(source.getName());
    let data = sheet.getRange(row,1,1,sheet.getLastColumn()).getValues();
    
    let targetSheet = ss.getSheetByName(val);
    targetSheet.appendRow(data[0]);
    sheet.deleteRow(row);
  }
}

我通过 Youtube 学习了一些教程,甚至尝试使用 chatGPT 寻求帮助,但没有成功。请随意查看 googlesheet 本身。

javascript google-sheets google-apps-script google-sheets-api
1个回答
0
投票

试试这个:

function onEdit(e){
  //e.source.toast("Entry")
  let sh = e.range.getSheet();
  if (e.range.columnStart == 1 && e.value) {    
    //e.source.toast("Gate1")
    let tsh = e.source.getSheetByName(e.value);
    sh.getRange(e.range.rowStart,1,1,sh.getLastColumn()).copyTo(tsh.getRange(tsh.getLastRow() + 1,1));
    sh.deleteRow(e.range.rowStart);
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.