我想做的事情非常简单。不幸的是,我似乎无法让它在天然气中工作。 我现在将自己难堪并发布我的最新(很多!)尝试:
var ss = SpreadsheetApp.getActiveSpreadsheet(); //
var findVal = ss.getRange("A1").getValue()
if (findVal.findText("8762", "#N/A"));
{
// do something
}
else {
// do something else
}
我只是想在特定的单元格中搜索大段文本中的数字8762,或字符串#N / A,它将是单元格中唯一的文本。 (仅供参考:#N / A不是公式的结果。它是实际文本。)
显然我正在尝试使用“find”的结果作为条件语句的驱动程序。
我不是VBA世界中的蠢货,但是电子表格设置中的javascript有时会让我觉得非常愚蠢。比如现在。
不过,我确实在广泛搜索这个解决方案。不幸的是,我发现的所有内容都是大型复杂运动的一部分,这些运动让我感到困惑。我只需要一个基本的真/假解决方案,仅此而已。是的,我可以轻松完成一半......
var ss = SpreadsheetApp.getActiveSpreadsheet(); //
var findVal = ss.getRange("A1").getValue()
if (findVal == "#N/A") {
// do something
}
else {
// do something else
}
(只是为了证明我不是在寻找讲义......只是伸出援助之手)
答案 0 :(得分:6)
不错的尝试。很高兴看到你在尝试什么。我认为你要找的是String match
函数。这不是特定于Apps脚本,因此您不会在其文档中找到它,而是在通用的JavaScript文档中找到它,例如on MDN
if( findVal.match('8762') || findVal == '#N/A' ) {
//do something
} else {
//do something else
}
请注意,即使我们将字符串作为match
函数的参数传递,它也会转换为regular expression。所以,你可以快速学习它。它看起来可能看起来太复杂了,但是一旦掌握它就非常有用而且相当简单。
执行上述操作的另一种方法:
if( findVal.match(/8762|^#N\/A$/) ) {
更好的是,我们可以保证您的号码是“单独的”而不是更大数字的一部分,如187621所示。
if( findVal.match(/\b8762\b|^#N\/A$/) ) {