2016-11-28 4 views
1

In Google-Blatt, ich möchte ein Formular in einer Seitenleiste mit Werten aus dem aktiven Blatt füllen. Da ich keinen Klick auf Zellenauslöser verwenden kann, möchte ich eine Funktion verwenden, die den Wert der aktiven Zelle annimmt, wenn auf eine Schaltfläche in der Seitenleiste geklickt wird. Ich schrieb diesen Code, aber es hat leider nicht funktioniert,füllen Seitenleiste Formular von Blatt

Ich bin neu in Apps-Skript, also entschuldigen Sie meine Low-Level-Code :) Vielen Dank!

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; 
    } 

Antwort

3

Sie haben einen Tippfehler in der HTML-Datei. Entfernen Sie die zusätzliche e in getElementByID zu machen:

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

Auch gibt keine Notwendigkeit, zu versuchen, das Formular zu übergeben, die auch ohnehin ein Problem verursacht, so entfernen Sie diese Teile. Sie endgültige Codes werden sein:

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

Vielen Dank Karl_S! es funktioniert jetzt. – MrMus

0

Btw Sie eine Funktion mit der Verwendung eines Bildes auslösen können, und die Verknüpfung dieses Bild zu einem Funktion .. Ein "Trick", etwas aus der Zelle auszulösen

Verwandte Themen