google-apps-script - 验证 Google App Script 中的特定字符串
问题描述
情况:
大家好!我有一个包含两个选项卡(“今天”和“当前”)的 Google 电子表格,我想验证“今天”选项卡中最后一行和 C 列的单元格中的值(例如 C50 或 C100,行号可能change) 是否等于字符串“ERROR”。如果此单元格包含字符串“ERROR”,它将从“当前”选项卡中复制 A2:J2 单元格中的数据,并替换“今天”中的“错误”字符串。
问题:
因此,我输入了以下代码,现在它可以获取“Today”中的值,但它无法验证它是否包含“ERROR”。我可以知道我的代码有什么问题吗?谢谢!
代码:
function checkdata(){
var ss = SpreadsheetApp.getActiveSpreadsheet()
var sheet = ss.getSheetByName('Today');
var lastRow = sheet.getLastRow();
var lastColumn = sheet.getLastColumn();
var data = sheet.getSheetValues(lastRow,3,1,1);
var ss2 = SpreadsheetApp.getActiveSpreadsheet();
var sheet2 = ss2.getSheetByName('Current');
var values = sheet2.getRange("A2:J2").getValues()[0];
if (data) {
if (data.indexOf('#ERROR!') < 0) {
sheet.getRange(lastRow+1, 1, 1, 10).setValues([[].concat(values)]);
}}}
解决方案
修改点:
getSheetValues()
返回二维数组。在此脚本中,if 语句始终为true
. 我认为这可能是您的问题的原因。
修改后的脚本:
从:
var data = sheet.getSheetValues(lastRow,3,1,1);
到:
var data = sheet.getRange(lastRow, 3).getValue();
getValue()
返回一个不是数组的对象。例如,当cell的值为字符串值时,返回字符串值。由此,我认为 if 语句有效。
参考:
推荐阅读
- amazon-web-services - 从 Hyperledger 模板创建 CloudFormation 堆栈时 CREATE_FAILED
- alan - 如何使用“今天”的日期自动填充日期字段
- c++ - 如何在它们之间分配和使用 2 个不同类的函数指针?
- c# - 对包含字符串和/或数字的集合进行排序
- java - 搜索翻译的 id 时应该返回 null 还是 -1?
- java - 启动 jasperserver 失败:org.springframework.beans.factory.BeanCreationException
- swift - Firebase / Firestore - 完成块未按预期工作
- javascript - Python转javascript、js认证
- python - 动态数组python 3
- sql - 如何在 SQL 中特定列的重复行之后放置 0?