当前位置: 首页 > 知识库问答 >
问题:

基于单元格文本删除Google工作表中的行(如果包含)

田瀚
2023-03-14

我试图创建一个脚本,如果单元格包含但不完全匹配条件,它将自动删除该行。例如,如果单元格包含gmail.com,脚本将删除行,作为较大电子邮件的一部分

123@gmail.com
123@yahoo.com
456@gmail.com
456@yahoo.com

这两封yahoo电子邮件将被保存,因为它们不符合条件。但是,我不确定在编写脚本时使用适当的条件听写。这是我到目前为止所拥有的。

function deleteRows() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var s = ss.getSheetByName('Sheet1');
  var r = s.getRange('B:B');
  var v = r.getValues();
  for(var i=v.length-1;i>=0;i--)
    if(v[0,i] 'gmail.com')
      s.deleteRow(i+1);
};

我会把a==,但这只会删除与gmail完全匹配的行。com。我将使用什么来代替==使其本质上成为一个包含条件的文本?

共有1个答案

丌官承
2023-03-14

尝试以下操作:

function deleteMatchingRows(string) {
  var string=string||'gmail.com';
  var ss = SpreadsheetApp.getActive();
  var sh=ss.getSheetByName('Sheet1');
  var lngth=sh.getLastRow();
  var rg=sh.getRange(1,2,lngth,1);
  var vA=rg.getValues();
  var n=0;  
  for(var i=1;i<vA.length;i++){
    if(vA[i][0] && vA[i][0].indexOf(string)>-1){
      sh.deleteRow(i-n+1);
      n++;
    }    
  }
}
 类似资料:
  • 我需要VBA代码,可以删除整个行,如果两个单元格(可以在工作表的任何列)包含一个特定的文本。 我有一个每日生成的打印报告文件,该文件中的文本(在一个非特定列中)和也在任何列中。 #代表一个数字,所以在我的文件中可以有0-99999…,这取决于打印了多少页。 该文件包含从到的列和数千行,和文本可以位于每列上,具体取决于打印作业。 我希望VBA查看整个工作表,如果一行包含和,则应该删除整行。

  • 我是新的VBA和不是非常熟练的编程,所以我希望在这里得到一些帮助。 提前谢了。

  • 有没有人知道一个vba代码,如果a列中的任何单元格包含单词“total”,就可以删除整行?例如,A38包含“total”,则删除整行。下个月,单元格A44包含单词“total”,删除整行。诸如此类....谢谢!

  • 问题内容: 起初,我使用了网格。创建新版本的GWT后,我想替换CellTable上的Grid。 问题答案: 查看javadoc以获取详细信息。我的示例就像您可以在此处找到的示例(稍稍扩展一下):

  • 嗨,我需要移动每行(扫描)中的一个单元格范围,这些单元格包含特定列(在我的情况下可以是任何列,但在我的代码中是coln“e”)中的一个单元格,该值以文本字符串L开始。以下是我所尝试的(我是VBA新手)。在本例中,我希望将移动到,其中是行号。

  • 对于包含多个工作表的电子表格,我有一个脚本,可以在按下按钮时删除特定范围内所有工作表中的数据。 现在我有一个主电子表格,它链接到其他几个电子表格(以及它们包含的工作表)(导入范围、查询等)。)。 是否可以通过脚本在连接的电子表格中按一个按钮删除特定范围内的数据,我想从主电子表格中触发此操作?! 使用脚本从工作表中删除的数据是手动用户输入的,因此不来自主电子表格。表1中应删除的范围/单元格不同。A和