5th*_*4x4 1 google-apps-script
我想要做的很简单.不幸的是,我似乎无法让它在天然气中工作.我现在将自己难堪并发布我的最新(许多!)尝试:
var ss = SpreadsheetApp.getActiveSpreadsheet(); //
var findVal = ss.getRange("A1").getValue()
if (findVal.findText("8762", "#N/A"));
{
// do something
}
else {
// do something else
}
Run Code Online (Sandbox Code Playgroud)
我只是想在特定的单元格中搜索大段文本中的数字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
}
Run Code Online (Sandbox Code Playgroud)
(只是为了证明我不是在寻找讲义......只是伸出援助之手)
不错的尝试.很高兴看到你在尝试什么.我认为你正在寻找的是String match函数.这不是特定于Apps脚本,因此您不会在其文档中找到它,而是在通用JavaScript文档上找到它,例如在MDN上.
if( findVal.match('8762') || findVal == '#N/A' ) {
//do something
} else {
//do something else
}
Run Code Online (Sandbox Code Playgroud)
请注意,即使我们将字符串作为match函数的参数传递,它也会转换为正则表达式.所以,你可以快速学习它.它可能看起来太复杂但是非常有用,而且一旦掌握它就相当简单.
另一种做法如上:
if( findVal.match(/8762|^#N\/A$/) ) {
Run Code Online (Sandbox Code Playgroud)
更好的是,我们可以保证您的号码"单独"而不是更大数字的一部分,如187621.
if( findVal.match(/\b8762\b|^#N\/A$/) ) {
Run Code Online (Sandbox Code Playgroud)