簡體   English   中英

Google App Script:根據列中的值將行(僅行中選定的列)移動到另一個選項卡

[英]Google App Script: move row (only selected columns within the row) to another tab based on value in column

我有一個腳本可以在給定列中出現某個值時移動行,但我只想移動這些行中的某些列。

這是我目前使用的腳本:

//Move rows to Des tab from Form tab
function moveSafeRows()
{
  var ss=SpreadsheetApp.getActive();
  var sh0=ss.getSheetByName('Form');
  var rg0=sh0.getDataRange();
  var sh1=ss.getSheetByName('Des');
  var vals=rg0.getValues();
  for(var i=vals.length-1;i>0;i--)
  {
    if(vals[i][3]=='Yes')
    {
      sh1.appendRow(vals[i]);
      sh0.deleteRow(i+1)
    }
  }
} 

“表單”選項卡中有 8 列,但我只想移動第 1、2、5 列中的值。

我制作了一份類似於我正在處理的電子表格的副本,模擬了我想在第二個選項卡中看到的輸出: https : //docs.google.com/spreadsheets/d/17CRkz71FehikIblgwjHg-r982cUe95WLPI6LiFUr2LI/edit?pli= 1#gid=0

解釋:

你很親近。

您可以通過相應地切片vals數組來僅從第 1、2 和 5 列移動數據:

sh1.appendRow([vals[i][0],vals[i][1],vals[i][4]]);

請記住, 0指的是第一列。 因此,在我們的示例中,我們對 0、1 和 4 感興趣。


解決方案:

//Move rows to Des tab from Form tab
function moveSafeRows()
{
  var ss=SpreadsheetApp.getActive();
  var sh0=ss.getSheetByName('Form');
  var rg0=sh0.getDataRange();
  var sh1=ss.getSheetByName('Des');
  var vals=rg0.getValues();
  for(var i=vals.length-1;i>0;i--)
  {
    if(vals[i][3]=='Yes')
    {
      sh1.appendRow([vals[i][0],vals[i][1],vals[i][4]]);
      sh0.deleteRow(i+1)
    }
  }
} 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM