【发布时间】:2025-11-27 18:20:03
【问题描述】:
我已经构建了一个运行良好的脚本,但是为了可用性,我想通过公式填充查询的字段以构建有效负载。
问题:如果我有没有值但公式的字段,脚本将空值发送到 api 导致错误停止后续功能。
如果我手动设置包含公式的字段数组,它可以工作。
我正在寻找的解决方案:我的脚本的代码行,在遇到带有公式而不是值的字段时中断。
我希望这个问题/问题很清楚。
我试过这段代码,但它不起作用:
for (var i = 1; i < data_statistics.length; i++) {
if (data_statistics[i] === undefined) {
break;
}
else if (data_statistics[i][0].includes("=")) {
break;
}
这是工作函数:
function Mean(){
var sheet_statistics = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Mean")
var data_statistics = sheet_statistics.getDataRange().getValues();
var token = _requestToken();
var col_start = 2
for (var i = 1; i < data_statistics.length; i++) {
if (data_statistics[i] === undefined) {
break;
}
// Build payloads and apply small sanity checks payload specific
// Payload same typo
var payload = Object();
for (var j = col_start; j < data_statistics[0].length; j++) {
_buildPayload(payload, data_statistics[0][j].split('.'), data_statistics[i][j]);
}
payload.filters.divisionLevel100 = String(payload.filters.divisionLevel100);
// Get statistics
var statistics = _getOfferStatistics(token, payload)
// Set statistics values in cells
sheet_statistics.getRange(i+1, 1).setValue(statistics.metric)
sheet_statistics.getRange(i+1, 2).setValue(statistics.value)
【问题讨论】:
-
data_statistics 是一个二维数组,因此您需要 2 个索引来指定单个单元格
-
您可以使用 getFormulas() 获取公式数组。如果该数组中的给定单元格不为空,则该单元格是一个公式,因此您可以使用该单元格的公式,当使用 setValues() 时,公式将插入指定范围
-
您好 Cooper,感谢您如此迅速地回答。我实际上不想将公式插入单元格,我在执行脚本之前使用公式填充字段 - 但是由于数据长度(需要的行数)不同,我基本上需要脚本不仅在空时中断字段(未定义),但也适用于只有公式的字段? - 我编辑了这个问题,因为它不清楚:D
-
使用getFormulas()判断哪些单元格有公式
标签: javascript excel google-apps-script google-sheets