搜索带有通配符的值



下面是我正在运行的一个脚本,它根据工作表LX03SB第2列中的值搜索存储在附件位置的项目。我们目前有10个附属地点,所以我添加了对每个地点的搜索,但随着我们的扩展,这变得越来越乏味。是否有方法修改valueToWatch函数,以查找以附件开头的任何值,而不是所需的附件01、附件02等。

function MoveAllRightRows1(){
var columnNumberToWatch = 2; 
var valueToWatch = "ANNEX01"; 
var sheetNameToMoveTheRowTo = "OFFSITE";      
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("LX03SBD");
var row = 1;
var len = sheet.getRange(1 , columnNumberToWatch, sheet.getLastRow() - 1).length;
var range = sheet.getRange(row,2,sheet.getLastRow(),1).getValues(); 
var len = range.length;
var targetSheet = ss.getSheetByName(sheetNameToMoveTheRowTo);
for (row=len; row> 0 ; row--){
if (range[row-1][0]== valueToWatch) { 
var targetRange = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
sheet.getRange(row, 1, 1,sheet.getLastColumn()).moveTo(targetRange);
sheet.deleteRow(row);
}}}

function MoveAllRightRows2(){
var columnNumberToWatch = 2; 
var valueToWatch = "ANNEX02"; 
var sheetNameToMoveTheRowTo = "OFFSITE";      
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("LX03SBD");
var row = 1;
var len = sheet.getRange(1 , columnNumberToWatch, sheet.getLastRow() - 1).length;
var range = sheet.getRange(row,2,sheet.getLastRow(),1).getValues(); 
var len = range.length;
var targetSheet = ss.getSheetByName(sheetNameToMoveTheRowTo);
for (row=len; row> 0 ; row--){
if (range[row-1][0]== valueToWatch) { 
var targetRange = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
sheet.getRange(row, 1, 1,sheet.getLastColumn()).moveTo(targetRange);
sheet.deleteRow(row);
}}}

我相信您的目标如下。

  • 您希望反映用于从列"中搜索值(如Annex02Annex01等(的脚本;B";的";LX03SBD";工作表

在这种情况下,使用TextFinder怎么样?当这反映到您的脚本中时,它将变为如下。

修改的脚本:

PD_3
  • 当运行该脚本时,Annex02、CCD_5等的值从列";B";的";LX03SBD";床单并且,在循环中使用搜索到的值

参考:

类范围的createTextFinder(findText(

最新更新