首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Google :调整目标范围并在源空间中添加条件

Google :调整目标范围并在源空间中添加条件
EN

Stack Overflow用户
提问于 2021-10-10 09:47:23
回答 1查看 32关注 0票数 0

下面的脚本每小时运行一次,并从"Injection“选项卡(这是从另一个每15分钟更改一次的工作表)中向”今天“选项卡添加新的票证。我想补充我一直在努力的另外两个步骤

  1. 目标范围应该是目标表中的下一个空闲行(G列),目前它是一个固定值,将覆盖现有数据。更复杂的是,目标页每天晚上00:00被擦干净,这意味着第一个空闲行返回到G7.

源范围应该只接受在列X中有文本"New“的值,目前它会提取所有的值indiscriminately

谢谢您的建议或支持。

代码语言:javascript
复制
    function tickets(){ 

var sourceSheet = "Injection" ;
var sourceRange = "A4:N504" ; 
var targetSheet = "Today" ; 
var targetRange = "G7:T507" ;

var ss = SpreadsheetApp.getActiveSpreadsheet(); 
var sheet = ss.getSheetByName(sourceSheet); 
var values = sheet.getRange(sourceRange).getValues(); ss.getSheetByName(targetSheet).getRange(targetRange).setValues(values); 

}
EN

回答 1

Stack Overflow用户

发布于 2021-10-10 14:20:08

代码语言:javascript
复制
function tickets(){ 

  const sourceSheet = "Injection" ;
  const targetSheet = "Today" ; 

  const ss = SpreadsheetApp.getActiveSpreadsheet(); 
  const ssh = ss.getSheetByName(sourceSheet); 
  const tsh = ss.getSheetByName(targetSheet); 

  const lock = LockService.getDocumentLock()
    
  try{
    lock.waitLock(15000);
  
    SpreadsheetApp.flush()
    const COL_X_INDEX = 23;
    const newValues = ssh.getDataRange().getValues().filter(row=>row[COL_X_INDEX]==='New');
    
    if(newValues.length>0){
        const lastRow = tsh.getRange('G:G').getDataRegion().getValues().length()
        const targetRange = tsh.getRange(lastRow+1,1,newValues.length, newValues[0].length)
        targetRange.setValues(newValues)
    }
  } finally{
    lock.releaseLock()
  }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69514089

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档