簡體   English   中英

無法通過應用腳本從谷歌表中獲取價值

[英]cannot get value from google sheet through app script

我開始學習如何使用 Google App 腳本進行編碼,並且剛剛完成了擴展 Google 表格上的 codelab 播放列表。

因此,為了嘗試一下,我編寫了一個代碼,目的是通過名為“OrderNum”的變量從工作表中的特定單元格中提取一個值,使用 Logger 記錄包含該值的變量以檢查我的代碼,但對於某些我不斷收到“(變量)未定義)”錯誤的原因,我已經嘗試了多種方法,但沒有任何效果……我做錯了什么?? 這是我的代碼:

function onOpen() {
  var ui = SpreadsheetApp.getUi();

  // Create a custom menu
  ui.createMenu('Order Functions')
    .addItem('Copy form to database',"copy2db")
    .addToUi();
}

// Pull orderNum value from sheet
function checkOrderNum() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  var orderNum = sheet.getRange('H2').getValue();
}

Logger.log('var ', orderNum);

顯示單元格 H2 值的谷歌工作表片段

我得到的錯誤是“ReferenceError: orderNum is not defined。我不明白,在我看來,所有的引用都在那里。另外,當我刪除記錄器命令時,沒有出現錯誤,但我沒有知道我的代碼是否正確,這顯然不是。

謝謝你的幫助,內斯特

您收到一條錯誤消息:“ReferenceError:orderNum 未定義)。

這是因為您的 Logger 語句不是函數的一部分。

Logger是 Google 腳本的一個特性, Logger.log有很好的文檔記錄。

在以下示例中,我包含了 Logger 語句的三個版本。

  • Logger.log("the order number is "+orderNum); : 在這種情況下,描述文本用引號括起來,后跟“+”運算符和變量名稱。
  • Logger.log('var %s', orderNum); :@Tanaike 提出的建議。 在這種情況下,“%s”充當占位符doc ref
  • Logger.log('var ', orderNum); :這是您的記錄器語句,但這次它包含在函數中。

這些語句返回以下結果:

  • 訂單號是 1001
  • 無功 1001.0
  • 無功 1001.0

// Pull orderNum value from sheet
function checkOrderNum() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  var orderNum = sheet.getRange('H2').getValue();
  Logger.log("the order number is "+orderNum);
  Logger.log('var %s', orderNum);
  Logger.log('var ', orderNum);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM