我正在尝试编写一个google脚本,如果该行包含带字符串的单元格,则会删除该行。
以下是我现在使用的代码:
function myFunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = ss.getSheetByName('Test');
var values = s.getDataRange().getValues();
for(var i=values.length;i>0;i-=1){
var lcVal=values[i-1][0].toLowerCase()
var index = lcVal.indexOf("deleteme");
if (lcVal.indexOf("deleteme") > -1){
s.deleteRow(i)};
}}
理想情况下,这将通过并删除具有包含“deleteme”的单元格的行。我还想指定一个可以检查的单元格范围(即从第9行开始的整个A列),但我还没有想出那个部分。
现在,当我尝试运行它时没有任何反应,并且单元格没有被删除。
答案 0 :(得分:0)
首先,请记住GAS基于JavaScript。因此,如果您仅仅在确定错误的方面使用JavaScript,则可能需要添加该标记。您可能已经对这个问题有了答案......或者它已经被标记为重复的问题。如果您这样做,请务必指出您正在询问JavaScript部分,否则只需将片段放入JS中即可。
二。 Logger.log()是你的朋友。一切都以-1返回,所以什么也没发生。如果您输入这样的几行,然后在运行后查看日志,您可以看到发生了什么。 (我把它们留下来是合理的,所以我记得在调用脚本完成之前拉它们或者评论它们。)
function myFunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = ss.getSheetByName('Sheet11');
var values = s.getDataRange().getValues();
Logger.log(values);
for(var i=values.length;i>0;i-=1){
var lcVal=values[i-1][0].toLowerCase()
var index = lcVal.indexOf("Science");
Logger.log("lcVal and index are: " + lcVal + " ... " + index + " and values.indexofscience is: " + values.indexOf("science"));
if (lcVal.indexOf("Science") > -1){
s.deleteRow(i)};
}}
这导致此日志:
[16-07-09 10:56:15:285 EDT] [[science], [math], [science], [english], [ELA], [History], [Elective], [Science]]
[16-07-09 10:56:15:286 EDT] lcVal and index are: science ... -1 and values.indexofscience is: -1
[16-07-09 10:56:15:286 EDT] lcVal and index are: elective ... -1 and values.indexofscience is: -1
[16-07-09 10:56:15:286 EDT] lcVal and index are: history ... -1 and values.indexofscience is: -1
[16-07-09 10:56:15:287 EDT] lcVal and index are: ela ... -1 and values.indexofscience is: -1
[16-07-09 10:56:15:287 EDT] lcVal and index are: english ... -1 and values.indexofscience is: -1
[16-07-09 10:56:15:288 EDT] lcVal and index are: science ... -1 and values.indexofscience is: -1
[16-07-09 10:56:15:288 EDT] lcVal and index are: math ... -1 and values.indexofscience is: -1
[16-07-09 10:56:15:289 EDT] lcVal and index are: science ... -1 and values.indexofscience is: -1
因此,我的测试表中的科学和科学词语没有返回索引位置。那时你需要深入研究indexOf()或者以不同的方式做事。
第三......或者它应该是第1个/第0个......问你是否正在做一些独特的事情,或者是否曾经有过这样的事情。查找字符串并删除一行是很常见的事情。 SE和其他网站上有很多答案。 here是一个应该通过对方法进行良好讨论的方式来帮助您。我不会重复它。