Javascript 通过GAS将数字符号(#)插入谷歌电子表格

Javascript 通过GAS将数字符号(#)插入谷歌电子表格,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,我在尝试使用脚本将“#”符号插入单元格时遇到了一个问题(当提交来自表单时,脚本会被触发运行) 我尝试过这样做: somecell.setFormula('=HYPERLINK("http://www.some.link/some/'+var+'#1a2b3c","'+var+'")'); 因此,输出应为: =HYPERLINK("http://www.some.link/some/1234#1a2b3c","1234") 但它总是作为“仅”插入(否,链接的其余部分在符号后) 执行期间没有报告

我在尝试使用脚本将“#”符号插入单元格时遇到了一个问题(当提交来自表单时,脚本会被触发运行)

我尝试过这样做:

somecell.setFormula('=HYPERLINK("http://www.some.link/some/'+var+'#1a2b3c","'+var+'")');
因此,输出应为:

=HYPERLINK("http://www.some.link/some/1234#1a2b3c","1234")
但它总是作为“仅”插入(否,链接的其余部分在符号后)

执行期间没有报告错误。 我应该如何将符号放入脚本中,以便将其插入公式中?我试过使用…1234(反斜杠)#1a。。。但它不起作用

编辑 脚本是如何工作的(简而言之):首先,sheet接收一个表单提交,其中一个条目是URL。然后,脚本切断部分链接(使用.split('/'),然后使用.pop()来获取.split创建的数组的最后一个元素),提取的变量在.setFormula中用作var


而且,我又试了一次;反斜杠不起作用-删除(包括)#之后的所有内容。

您需要包括反斜杠以转义字符:

function addlink() {
  var somecell = SpreadsheetApp.getActiveSpreadsheet().getRange('F2');
  var blah = "123";
  somecell.setFormula('=HYPERLINK("http://www.some.link/some/'+blah+'\#1a2b3c","'+blah+'")');
  //                                                                ^^^
}

我试过这样的例子:

function test(){
  var sh = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var xx = '1234'
  sh.getRange('A2').setFormula('=HYPERLINK("http://www.some.link/some/'+xx+'#1a2b3c","'+xx+'")');
}
我得到了预期的结果


我不知道为什么,但当我想声明我在问题帖子中试图使用反斜杠时,反斜杠被删除了;问题帖的最后一句应该是这样的:“我试过使用……1234(这里是反斜杠)#1a……但它不起作用。”我会马上编辑它。此外,我将编辑上面的文章,并提供一些线索,可能会提示您问题的原因。我已经找到了这种情况的原因,调用的函数(包含这行有问题的代码)在脚本中复制了两次(并且第二个实例正在运行,最近没有更改的一个)这是我的错,我从一开始就没有发现这一点。嗯,很抱歉无中生有,这篇文章可以(或者应该)扔进垃圾箱。我再次道歉!这个问题似乎离题了,因为报告的问题的行为与预期的一样,实际上不是作者遇到的错误的来源。
function test(){
  var sh = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var xx = '1234'
  sh.getRange('A2').setFormula('=HYPERLINK("http://www.some.link/some/'+xx+'#1a2b3c","'+xx+'")');
}