Hyperlink 使用JS将单元格中的链接复制到其他工作表时保留超链接URL

Hyperlink 使用JS将单元格中的链接复制到其他工作表时保留超链接URL,hyperlink,google-apps-script,google-sheets,Hyperlink,Google Apps Script,Google Sheets,在我的电子表格中,参考点(28,9)处的单元格包含一个超链接。然后,代码将该单元格的内容复制到同一电子表格中的另一张工作表中。现在它将复制文本,但新单元格仅包含文本,而不包含超链接属性。有没有办法通过传输保留超链接?我试着查找超链接信息,但找不到答案……或者至少我不理解。我只编写了大约2周的代码,所以仍然不太理解。这是我的密码: 函数submitButtonClick(){ var ss=SpreadsheetApp.getActive(); var sheet=ss.getActiveShe

在我的电子表格中,参考点(28,9)处的单元格包含一个超链接。然后,代码将该单元格的内容复制到同一电子表格中的另一张工作表中。现在它将复制文本,但新单元格仅包含文本,而不包含超链接属性。有没有办法通过传输保留超链接?我试着查找超链接信息,但找不到答案……或者至少我不理解。我只编写了大约2周的代码,所以仍然不太理解。这是我的密码:

函数submitButtonClick(){
var ss=SpreadsheetApp.getActive();
var sheet=ss.getActiveSheet();
Logger.log('sheet.getName():'+sheet.getName());
if(sheet.getName()!==“SubmitReceipt”){return;};
var targetSheet=ss.getSheetByName(“ReceiptRecord”);
var arrayOfData=[];
var week=sheet.getRange(6,9).getValue();
var empn=sheet.getRange(4,9).getValue();
var purDate=sheet.getRange(9,9).getValue();
var purFrom=sheet.getRange(11,9).getValue();
var custC=sheet.getRange(14,9).getValue();
var deptC=sheet.getRange(16,9).getValue();
var lotC=sheet.getRange(18,9).getValue();
var laboc=sheet.getRange(20,9).getValue();
var itemC=sheet.getRange(22,9).getValue();
var hyperL=sheet.getRange(28,9).getValue();
var notes=sheet.getRange(44,8).getValue();
arrayOfData[0]=周;
arrayOfData[1]=empn;
arrayOfData[2]=purDate;
arrayOfData[3]=purFrom;
arrayOfData[4]=custC;
arrayOfData[5]=deptC;
arrayOfData[6]=lotC;
arrayOfData[7]=laborC;
arrayOfData[8]=项目C;
arrayOfData[9]=注释;
arrayOfData[10]=hyperL;
Logger.log('arrayOfData'+arrayOfData)
var lastRow=targetSheet.getLastRow();
Logger.log('lastRow:'+lastRow);
Logger.log('arraylength'+arrayOfData.length);
getRange(lastRow+1,1,1,arrayOfData.length).setValue([arrayOfData]);
sheet.getRange(9,9).clearContent();
sheet.getRange(11,9).clearContent();
sheet.getRange(14,9).clearContent();
sheet.getRange(16,9).clearContent();
sheet.getRange(18,9).clearContent();
sheet.getRange(20,9).clearContent();
sheet.getRange(22,9).clearContent();
sheet.getRange(28,9).clearContent();
sheet.getRange(44,8).clearContent();
}

我想出来了。注意“//更改”注释之间的差异

函数submitButtonClick(){
var ss=SpreadsheetApp.getActive();
var sheet=ss.getActiveSheet();
Logger.log('sheet.getName():'+sheet.getName());
if(sheet.getName()!==“SubmitReceipt”){return;};
var targetSheet=ss.getSheetByName(“ReceiptRecord”);
var arrayOfData=[];
var week=sheet.getRange(6,9).getValue();
var empn=sheet.getRange(4,9).getValue();
var purDate=sheet.getRange(9,9).getValue();
var purFrom=sheet.getRange(11,9).getValue();
var custC=sheet.getRange(14,9).getValue();
var deptC=sheet.getRange(16,9).getValue();
var lotC=sheet.getRange(18,9).getValue();
var laboc=sheet.getRange(20,9).getValue();
var itemC=sheet.getRange(22,9).getValue();
var hyperL=sheet.getRange(28,9).getValue();
var notes=sheet.getRange(44,8).getValue();
//变化
var range=SpreadsheetApp.getActiveSheet().getRange(28,9,1,3);
Logger.log('range='+range.getValue());
Logger.log('hyperlink:'+range.getFormulaR1C1());
var url=/“(.*?)/.exec(range.getFormulaR1C1())[1];
Logger.log('url:'+url);
//变化
arrayOfData[0]=周;
arrayOfData[1]=empn;
arrayOfData[2]=purDate;
arrayOfData[3]=purFrom;
arrayOfData[4]=custC;
arrayOfData[5]=deptC;
arrayOfData[6]=lotC;
arrayOfData[7]=laborC;
arrayOfData[8]=项目C;
arrayOfData[9]=注释;
arrayOfData[10]=hyperL;
arrayOfData[11]=url;
Logger.log('arrayOfData'+arrayOfData)
var lastRow=targetSheet.getLastRow();
Logger.log('lastRow:'+lastRow);
Logger.log('arraylength'+arrayOfData.length);
getRange(lastRow+1,1,1,arrayOfData.length).setValue([arrayOfData]);
sheet.getRange(9,9).clearContent();
sheet.getRange(11,9).clearContent();
sheet.getRange(14,9).clearContent();
sheet.getRange(16,9).clearContent();
sheet.getRange(18,9).clearContent();
sheet.getRange(20,9).clearContent();
sheet.getRange(22,9).clearContent();
sheet.getRange(28,9).clearContent();
sheet.getRange(44,8).clearContent();
}

您可以创建一个行数组来获取,而不是为每个值创建单独的代码行:
var arrayRowsToGet=[6,4,9,11,14,16,18等]然后循环该数组:
var thisLoopValue=“”,cellValue;对于(var i=0;i