2013-07-15 48 views
0

當使用腳本(當提交來自表單時觸發運行時)嘗試向單元格中插入「#」符號時遇到問題。通過GAS將數字符號(#)插入到Google電子表格中

我試圖做這種方式:

somecell.setFormula('=HYPERLINK("http://www.some.link/some/'+var+'#1a2b3c","'+var+'")'); 

所以輸出應該是:

=HYPERLINK("http://www.some.link/some/1234#1a2b3c","1234") 

但它總是插入,因爲只有(無#和鏈接後的休息標誌)

=HYPERLINK("http://www.some.link/some/1234","1234") 

在執行期間沒有錯誤報告。 我應該如何將標誌放入腳本中,以便將其插入到公式中?我嘗試過使用... 1234(反斜槓)#1a ...但它不起作用。

編輯 腳本如何工作(簡而言之):首先,工作表接收表單提交併將URL作爲條目之一。然後,該腳本切斷部分鏈接(使用.split('/'),然後.pop()獲得數組的最後一個元素.split創建),並且提取的變量爲被用在.setFormula上面看作var

另外,我再次嘗試;反斜槓不起作用 - 刪除(和包括)#後的所有內容。

+0

這個問題似乎是無關緊要的,因爲所報告的問題表現得如預期一樣nd實際上並不是作者遇到的錯誤的根源。 – Mogsdad

回答

0

您需要包括一個反斜槓來轉義字符:

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

我不知道爲什麼,但是當我想說我曾試圖在問題中使用反斜槓時,反斜槓被刪除;這個問題的最後一句應該是這樣的:「我嘗試過使用...... 1234(反斜槓在這裏)#1a ......但它不起作用。」我會馬上編輯它。 此外,我會編輯上面的帖子,提供一些線索,可能會提示您我的問題的原因。 –

0

我想你的例子是這樣的:

function test(){ 
    var sh = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); 
    var xx = '1234' 
    sh.getRange('A2').setFormula('=HYPERLINK("http://www.some.link/some/'+xx+'#1a2b3c","'+xx+'")'); 
} 

,我得到預期的結果

enter image description here

+0

我找到了這種情況的原因,被調用的函數(幷包含這個有問題的代碼行)在腳本中被複制了兩次(並且onyl第二個實例正在運行 - 沒有最近更改的那個),那是我的錯我從一開始就沒有發現這一點。 嗯,抱歉沒有任何問題,這篇文章可以(或應該)去垃圾桶。 我再次道歉! –

相關問題