彰化一整天的論壇

 找回密碼
 立即註冊
查看: 287|回復: 25

老師請問一下,GOOGLE表單的指令碼有研究嗎?

[複製鏈接]
發表於 2020-5-7 11:34:32 | 顯示全部樓層 |閱讀模式
http://practical-dbm.blogspot.com/2014/12/google-sheetqr-code.html?m=1

它表格預設是只有二個問題,我想改成三個問題的,可是指令碼看不懂
不知如何下手
回復

使用道具 舉報

發表於 2020-5-7 11:48:34 | 顯示全部樓層
您分享您的試算表,我看一下您的問題。
回復 支持 反對

使用道具 舉報

 樓主| 發表於 2020-5-7 13:38:33 | 顯示全部樓層
本帖最後由 yws0915 於 2020-5-7 13:45 編輯

https://docs.google.com/spreadsh ... f4/edit?usp=sharing
回復 支持 反對

使用道具 舉報

發表於 2020-5-7 13:52:29 | 顯示全部樓層
yws0915 發表於 2020-5-7 13:38
https://docs.google.com/spreadsheets/d/1h7mDjGM-6bIxrB6GlRjbH0NC2xJr9dRyqaJeuD-Ylf4/edit?usp=sharing ...

這個連結是那個作者分享的.
我要看的是您是那3個問題.
回復 支持 反對

使用道具 舉報

 樓主| 發表於 2020-5-7 14:10:51 | 顯示全部樓層
我也是從那邊建副本的,他的表單只有設二個問題,我已經做到掃它QRCODE就直接送出表單
可是如果表單改成三個問題就不會送出了
所以它的指令程式碼需要修改才可以

var formURL = 'https://docs.google.com/forms/d/e/1FAIpQLSd8t2dxYlpn2B2RGoYP0emqYhg7Kxu1c2AYN2KTQsY49mkUVA/formResponse';
var field1 = '1486848017';
var field2 = '44110693';
var field3 = '849011017';


function generateQRcode() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var uid = ss.getRange("報名表!B2:B").getValues();
  var uname = ss.getRange("報名表!C2:C").getValues();
  var emaail = ss.getRange("報名表!D2").getValues();
  var a = ss.getRange("報名表!A2:A");
  var QRcode = a.getValues();
  for (var i = 0; i < ss.getSheetByName("報名表").getLastRow()-1 ; i++) {
    QRcode[i][0] = '=IMAGE("http://chart.apis.google.com/chart?cht=qr&chs=500x500&chl=' + formURL + '?usp=pp_url%26entry.' + field1 + '=' + uid[i][0] + '%26entry.' + field2 + '=' + uname[i][0] +  field3 + '=' + uname[i][0] +'")';
  }
  a.setValues(QRcode);
}

function markAttendence() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var Uid = ss.getRange("報名表!B2:B").getValues();
  var ID = ss.getRange("簽到表單回應!B2:B").getValues();
  ss.getSheetByName("報名表").getRange('B2:B').setBackground('#FFFFFF');
  for (var i = 2; i < ss.getSheetByName("簽到表單回應").getLastRow()+1 ; i++) {
    for (var j = 2; j < ss.getSheetByName("報名表").getLastRow()+1 ; j++) {
      if (ID[i-2][0]==Uid[j-2][0]){
        ss.getSheetByName("報名表").getRange('B'+j).setBackground('#00FF00');
        break;

回復 支持 反對

使用道具 舉報

發表於 2020-5-7 14:15:37 | 顯示全部樓層
本帖最後由 imingho 於 2020-5-7 14:16 編輯
yws0915 發表於 2020-5-7 14:10
我也是從那邊建副本的,他的表單只有設二個問題,我已經做到掃它QRCODE就直接送出表單
可是如果表單改成三 ...

請用貼程式碼的方式上傳完整的程式碼.
請參考.
如何在discuz張貼程式碼
http://discuz.bestdaylong.com/fo ... tid=30239&fromuid=2
(出處: 彰化一整天的論壇)



回復 支持 反對

使用道具 舉報

 樓主| 發表於 2020-5-7 14:27:22 | 顯示全部樓層
  1. var formURL = 'https://docs.google.com/forms/d/e/1FAIpQLSd8t2dxYlpn2B2RGoYP0emqYhg7Kxu1c2AYN2KTQsY49mkUVA/formResponse';
  2. var field1 = '1486848017';
  3. var field2 = '44110693';
  4. var field3 = '849011017';


  5. function generateQRcode() {
  6.   var ss = SpreadsheetApp.getActiveSpreadsheet();
  7.   var uid = ss.getRange("報名表!B2:B").getValues();
  8.   var uname = ss.getRange("報名表!C2:C").getValues();
  9.   var email = ss.getRange("報名表!D2:D").getValues();
  10.   var a = ss.getRange("報名表!A2:A");
  11.   var QRcode = a.getValues();
  12.   for (var i = 0; i < ss.getSheetByName("報名表").getLastRow()-1 ; i++) {
  13.     QRcode[0] = '=IMAGE("http://chart.apis.google.com/chart?cht=qr&chs=500x500&chl=' + formURL + '?usp=pp_url%26entry.' + field1 + '=' + uid[0] + '%26entry.' + field2 + '=' + uname[0] + '%26entry.'+ field3 + '=' + email[0] +'")';
  14.   }
  15.   a.setValues(QRcode);
  16. }

  17. function markAttendence() {
  18.   var ss = SpreadsheetApp.getActiveSpreadsheet();
  19.   var Uid = ss.getRange("報名表!B2:B").getValues();
  20.   var ID = ss.getRange("簽到表單回應!B2:B").getValues();
  21.   ss.getSheetByName("報名表").getRange('B2:B').setBackground('#FFFFFF');
  22.   for (var i = 2; i < ss.getSheetByName("簽到表單回應").getLastRow()+1 ; i++) {
  23.     for (var j = 2; j < ss.getSheetByName("報名表").getLastRow()+1 ; j++) {
  24.       if (ID[i-2][0]==Uid[j-2][0]){
  25.         ss.getSheetByName("報名表").getRange('B'+j).setBackground('#00FF00');
  26.         break;
  27.       }
  28.     }
  29.   }
  30. }

複製代碼
我改成這樣好像就可以用了,掃了就完成提交表單
回復 支持 反對

使用道具 舉報

發表於 2020-5-7 14:31:51 | 顯示全部樓層
yws0915 發表於 2020-5-7 14:27
我改成這樣好像就可以用了,掃了就完成提交表單

是的。這樣寫法是對的。
google_form_20200507_01.jpg

要您用程式碼的方式張貼是避免會出現笑臉在程式碼中.

回復 支持 反對

使用道具 舉報

 樓主| 發表於 2020-5-7 14:47:00 | 顯示全部樓層
哈哈~~我是瞎猜的
這只是要做個功能變色而已
回復 支持 反對

使用道具 舉報

 樓主| 發表於 2020-5-7 15:06:15 | 顯示全部樓層
請問如果要收集對方帳號的話,可以做到掃了就提交嗎?
回復 支持 反對

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

Archiver|手機版|小黑屋|彰化一整天的論壇(Excel,Office)  

GMT+8, 2020-5-31 06:17 , Processed in 0.119210 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表