2016-11-28 71 views
1

在谷歌表格中,我想用活動工作表中的值填充側欄中的表單。由於我不能使用點擊單元格觸發器,我想使用一個函數,當點擊側邊欄中的按鈕時,該函數將獲取活動單元格的值。 我寫了這段代碼,但它不工作,不幸的是,從工作表中填充側邊欄表單

我是新的Apps腳本,所以請原諒我的低級代碼:) 謝謝!

test_sidebar.html

<!DOCTYPE html> 
<html> 
    <head> 
    <base target="_top"> 
    <script> 

function tSubmit(form){ 

     google.script.run.withSuccessHandler(updateT).getT(form); 
} 

function updateT(cellValue){ 
var div=document.getEelementById('T'); 
div.innerHTML='<input name="T" size = 10 value=' + cellValue + '>K' 
} 

    </script> 
    </head> 
    <body> 
    <form> 
    <font color="red">Select conditions of interest:</font><p> 
<ul><input value=T type="Button" onClick="tSubmit(this)"><div id="T"> = <input name="T" size = 10>K</div></ul> 
<ul><i>P</i> = <input name="P" size = 10>bar</ul> 
</form> 
    </body> 
</html> 

code.gs:

function onOpen() { 
    SpreadsheetApp.getUi() // Or DocumentApp or FormApp. 
     .createMenu('Custom Menu') 
     .addItem('Show sidebar', 'showSidebar') 
     .addToUi(); 
} 

function showSidebar() { 
    var html = HtmlService.createHtmlOutputFromFile('test_sidebar') 
     .setTitle('My custom sidebar') 
     .setWidth(300); 
    SpreadsheetApp.getUi() // Or DocumentApp or FormApp. 
     .showSidebar(html); 
} 

    function getT(form){ 
    var cellValue= SpreadsheetApp.getActiveSheet().getActiveCell().getValue(); 
    return cellValue; 
    } 

回答

3

你必須在HTML文件中一個錯字。在的getElementById刪除多餘的E要使它:

var div=document.getElementById('T'); 

而且,沒有必要嘗試通過的形式,這也是造成反正有問題,所以才刪除那些部分。你最終代碼將是:

test_sidebar.html

<!DOCTYPE html> 
<html> 
    <head> 
    <base target="_top"> 
    <script> 

function tSubmit(){ 

     google.script.run.withSuccessHandler(updateT).getT(); 
} 

function updateT(cellValue){ 
var div=document.getElementById('T'); 
div.innerHTML='<input name="T" size = 10 value=' + cellValue + '>K' 
} 

    </script> 
    </head> 
    <body> 
    <form> 
    <font color="red">Select conditions of interest:</font><p> 
<ul><input value=T type="Button" onClick="tSubmit()"><div id="T"> = <input name="T" size = 10>K</div></ul> 
<ul><i>P</i> = <input name="P" size = 10>bar</ul> 
</form> 
    </body> 
</html> 

code.gs:

function onOpen() { 
    SpreadsheetApp.getUi() // Or DocumentApp or FormApp. 
     .createMenu('Custom Menu') 
     .addItem('Show sidebar', 'showSidebar') 
     .addToUi(); 
} 

function showSidebar() { 
    var html = HtmlService.createHtmlOutputFromFile('test_sidebar') 
     .setTitle('My custom sidebar') 
     .setWidth(300); 
    SpreadsheetApp.getUi() // Or DocumentApp or FormApp. 
     .showSidebar(html); 
} 

function getT(){ 
    var cellValue= SpreadsheetApp.getActiveSheet().getActiveCell().getValue(); 
    return cellValue; 
} 
+0

非常感謝Karl_S!它現在有效。 – MrMus

0

順便說一句,你可以觸發一個功能配合使用的圖像,並且圖像的鏈接功能..一個「技巧」觸發細胞的東西