簡體   English   中英

在谷歌表格中獲取帶有#NA 的公式的錯誤注釋以獲取腳本

[英]Getting the error note of a formula with #NA in google sheets for a script

我找不到任何方法來獲取失敗公式的錯誤消息(實際上提供了更多信息,只是錯誤代碼,因為 #NA 始終為 7)。 #NA 可能意味着不同的東西,我希望能夠識別哪些細胞具有哪種類型的#NA。

getNote不起作用。

有辦法嗎?

我使用 IMPORTXML(C1:C,"//@value")

但例如,當我 vlookup 失敗時,這是我想要檢索的錯誤消息

在此處輸入圖片說明

2021-02-01 更新:

正如Tanaike 提到的,錯誤消息可以通過電子表格 API 在 Sheets API 中檢索。 此信息可以作為ExtendedValue 的一部分找到,它對應於單元格數據的屬性effectiveValue

一個響應示例可能如下所示:

{
  "sheets": [
    {
      "data": [
        {
          "rowData": [
            {
              "values": [
                {
                  "effectiveValue": {
                    "errorValue": {
                      "type": "DIVIDE_BY_ZERO",
                      "message": "Function DIVIDE parameter 2 cannot be zero."
                    }
                  }
                }
              ]
            }
          ]
        }
      ]
    }
  ]
}

然后,您可以使用Advanced Sheet Service通過 Apps Script 訪問此 API。 例如,如果您想檢索單元格A1的錯誤消息,您可以執行以下操作:

function getErrorMessage(cellNotation = "A1") {
  const optionalArgs = {
    fields: "sheets(data(rowData(values(effectiveValue))))",
    ranges: cellNotation
  }
  const spreadsheetId = SpreadsheetApp.getActive().getId();
  const response = Sheets.Spreadsheets.get(spreadsheetId, optionalArgs);
  const errorMessage = response.sheets[0].data[0].rowData[0].values[0].effectiveValue.errorValue.message;
  return errorMessage;
}

不幸的是,這不能用作自定義函數,因為它需要用戶授權(請參閱使用 Apps 腳本服務)。

原答案:

據我所知,沒有內置函數,沒有 Apps 腳本工具,也沒有可以檢索此信息的API 方法

如果您認為擁有此功能會非常有用,您可以考慮在Google Issue Tracker 中創建一個功能請求。

作為一種解決方法,您可以為您正在使用的每個內置函數創建一個自定義函數,並使用try...catch來檢索您獲得的任何異常。

我希望這有任何幫助。

暫無
暫無

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

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