当“状态”从“打开”更改为“已完成”时,如何将一行移动到工作表(GOOGLE SHEET)的底部

2024-03-23

当“状态”更改为完整时,如何将行移动到同一张纸的底部。

我试图找出一旦 Status B 列值从 OPEN 更改为 CLOSED 时如何将行移动到底部。

工作表名称为:Sheet1,其中状态下拉菜单位于 B 列,下拉菜单包含:OPEN、HOLD、PENDING、CLOSED

当状态变为CLOSED时需要触发

我找到了这段代码,但这不起作用:

function onEdit(e) {

  const row = e.range.getRow();
  const col = e.range.getColumn();
  const as = e.source.getActiveSheet();
  if(as.getName() == "Sheet1" && col == 2  && row > 1 && !as.getRange(row,col).getValue()=='') {  
    const row_new = as.getRange(row,1,1,col);
    row_new.copyTo(as.getRange(as.getLastRow()+1,1,1,col));
    as.deleteRow(row);
  }
} 




如果我理解正确的话,如果在 B 列中选择了 CLOSED 状态,则您想要移动整行。 但是,IF 函数中不检查 CLOSED 状态。 此外,并不是复制整行,而是只复制 2 个单元格:

const row_new = as.getRange(row, 1, 1, col)

如果您像这样更改代码,那么一切都会正常运行:

Update

您在评论中添加了有关 HOLD 的附加条件。 下面是处理这种情况的更新代码:

function onEdit(e) {
  const row = e.range.getRow();
  const col = e.range.getColumn();
  const as = e.source.getActiveSheet();
  const lc = as.getLastColumn();
  if(as.getName() == "Sheet" && col == 2  && row > 1 && as.getRange(row,col).getValue() == 'CLOSED') {
    const row_new = as.getRange(row, 1, 1, lc);
    row_new.copyTo(as.getRange(as.getLastRow() + 1, 1, 1, lc));
    as.deleteRow(row);
  } else if(as.getName() == "Sheet" && col == 2  && row > 1 && as.getRange(row,col).getValue() == 'HOLD'){
    as.insertRowAfter(1);
    const row_new = as.getRange(row + 1, 1, 1, lc);
    row_new.copyTo(as.getRange(2, 1, 1, lc));
    as.deleteRow(row + 1);
  }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当“状态”从“打开”更改为“已完成”时,如何将一行移动到工作表(GOOGLE SHEET)的底部 的相关文章

  • Google Apps 脚本/表返回错误请求 400

    我有一个在 Google Sheet 上运行的相当简单的脚本 该脚本接受 Webhook POST 并将 Webhook 的内容写入电子表格中的新行 该脚本按预期运行 并在收到数据时写入新行 但是 由于某种原因 我发送 webhook 的应
  • 从特定键的嵌套数组行收集所有值[重复]

    这个问题在这里已经有答案了 需要创建一个列表 其中包含存储在特定键 product id 的数组行中的所有值 目前 对 bestsellers 变量执行 print r 会生成以下数组 Array 0 gt stdClass Object
  • 使用 apikey 从 Google Sheets API 获取 403 [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我一直在使用 Google Sheets 作为我的一些应用程序的简单数据后端 基本上 这些是 20 行 x 20 列 客户希望能够
  • 调用GAS中的sheet函数

    有没有办法在 google app script 中调用工作表函数 我想调用 MATCH IMPORTRANGE 和 INDEX 函数来计算函数定义中的返回值 如下所示 function abc foo bar a MATCH foo IM
  • 如果 AppsScript 服务已被限制,如何让脚本再次运行?

    我将此绑定脚本添加到谷歌工作表中 试图通过不必在单元格中手动输入工作表名称来节省时间 function sheetname return SpreadsheetApp getActive getName 然后我意识到它不稳定 所以我停止从工
  • 谷歌电子表格货币格式带后缀

    我的单元格的数据格式如下 12 345 67 EUR 一万二千三百四十五欧元六十七美分 我无法更改此格式 我需要将其中的很多内容从其他来源复制粘贴到电子表格中 我试图用它进行一些计算 但它向我展示了 VALUE 错误说它是文本 不能强制为数
  • google.script.run.withSuccessHandler() 返回未定义

    我使用下面提供的代码在单独的 GS 文件中创建了一个数组 我尝试在 HTML 文件中调用它 我的目标是将数组的内容与参数进行比较email 但是 返回的值google script run withSuccessHandler is und
  • Google 脚本检查一张纸上一列中的数据是否与另一张纸上另一列中的数据相同

    我正在尝试创建一个 Google 脚本来检查一张纸上一列中的数据是否与另一张纸上另一列中的数据相同 您知道我哪里出错了吗 谢谢 代码如下 function myFunction data from Salesworks var sheet
  • 如何将数组写入 Google 电子表格?

    我正在构建一个具有整数值的数组 并尝试一次性将其写入 Google 电子表格 var myArray new Array for i 1 i lt 100 i myArray i i ss getRange 8 4 1 100 setVal
  • 使用 TextFinder 搜索范围比搜索整个工作表慢

    我有一张有很多行的表 数千行 我想在特定列中搜索文本 我在用Range createTextFinder但它超时了 如果Sheet只有4行数据 甚至会超时 This is very slow var found sheet getRange
  • 当 Google 电子表格中的单元格更新时通过电子邮件通知

    我是脚本新手 添加了这个有效的脚本 function sendEmailAlert var ss SpreadsheetApp getActiveSpreadsheet var cellValue ss getActiveSheet get
  • 我如何知道电子表格单元格是否使用 Google Apps 脚本合并

    在 Google 文档电子表格中 如果合并单元格A1和A2 有办法吗 使用谷歌应用程序脚本确认它们已合并 GAS中有合并功能https developers google com apps script class range merge
  • 在 Google Apps 脚本中捕获电子表格应用程序模式对话框的 onClose 事件

    我想在模态对话框 使用打开 时执行一些操作showModalDialog https developers google com apps script reference base ui showModalDialog Object St
  • 如何在调度代码时自动选择R中googlesheets4中的预授权帐户?

    我试图弄清楚自动允许 googlesheet4 包选择我的预授权帐户来下载特定谷歌表格的方法是什么 例如 我想每天运行以下一次 library googlesheets4 delta lt read sheet https docs goo
  • 等列值数量求和的公式

    给定一个包含两列的电子表格 例如 A 和 B 每列下面包含 n 个值 所有文本 有没有一个公式可以让我只填充一个包含 A 列和 B 列中相等值数量的单元格 Example A B 1 M M 2 L M 3 L L 4 M M 5 M L
  • 支持 Apps Script Web App 5000 个并发用户

    我正在为 G Suite 客户构建一个小型应用程序 该应用程序将供客户的所有员工使用 在高峰时段可以看到多达 5 000 名并发用户 他们没有应用程序制作工具 也不打算很快启用应用程序制作工具 Apps 脚本 Web 应用程序能够处理这么多
  • 电子表格的授权范围

    我创建了一个独立的 Google Apps 脚本 它不属于任何文档 该脚本会以固定的时间间隔自动触发 这个脚本 创建几个文件夹 如果它们不存在 创建一个 Google 电子表格 如果不存在 读过说 电子表格 更新日历事件 我注意到 当我第一
  • Google Sheets API v4:batchGet 不起作用

    无法使用 batchGet 让 Google Sheets API v4 返回多个范围值 它给出以下错误 尽管文档说它需要 valueRanges 但所有范围和电子表格 ID 都是正确的 额外的参数块必须是 javascript 对象文字
  • 寻找使用库版本的方法?

    我正在通过库在多个电子表格上部署脚本 但正如您所知 脚本 目前 还无法知道它是否正在运行最新版本 我试图通过为我的代码创建自己的版本控制来找到解决此问题的方法 我有一个 Web 服务返回我的库代码的最新版本号 以便我可以对其进行比较 但 o
  • 我可以使用开发者密钥通过 Google Sheets API 无需 Oauth 向 Google Sheet 写入数据吗?

    我正在开发一个使用 Google Sheets API 读取和更新 Google 电子表格中的值的应用程序 我可以使用我的开发人员密钥进行读取 但是尝试写入会返回此错误 请求缺少所需的身份验证凭据 需要 OAuth 2 访问令牌 登录 co

随机推荐

  • 从 zfs 池中永久删除磁盘

    我尝试通过 ZIL 将 SSD 添加到 zpool 但我犯了一个错误 我期望 zpool 添加区域日志 c0t1d0但我做了 zpool 添加区域 c0t1d0 我尝试执行区域删除 分离 离线命令 但失败了 如何在 zpool 中移除 SS
  • WinForms如何调用按钮上的双击事件?

    我希望事件仅在双击按钮时发生 而不是在单击按钮时发生事件 遗憾的是 双击事件没有出现在 IDE 的事件列表中 有人知道解决这个问题的好方法吗 谢谢你 不 标准按钮不会对双击做出反应 请参阅文档按钮 双击 http msdn microsof
  • 递归到迭代帕斯卡三角形[重复]

    这个问题在这里已经有答案了 我想知道如何将递归函数 类转换为迭代函数 类 我已经制作了递归帕斯卡三角形 现在需要将其与迭代进行比较 public class RecursivePascal extends ErrorPascal imple
  • 是否可以使用 html 按钮为页面添加书签?

    是否可以使用 html 按钮为页面添加书签
  • 如何在不锁定活动方向的情况下锁定片段方向?

    我有一个特定的用例 我希望将片段锁定在纵向模式下 但仍然旋转活动 和 或同一活动中可见的其他片段 可以这样做吗 所有锁定片段方向的解决方案都建议使用 setRequestedOrientation 并锁定活动方向 但我需要其他可见片段进行旋
  • 从 Active Directory C# 检索图片

    我对 LDAP 非常陌生 想知道是否有一种方法可以知道特定域的活动目录中填充了哪些信息 例如 我试图使用以下方法获取组织员工的图像 var bytes directoryEntry Properties thumbnailPhoto Val
  • Ruby on Rails:从 ids 到名称/标题等的 URL

    我创建了生成脚手架的模型对象 但现在我想而不是链接到 controller id objectname 1 到 controller title objectname new blog post 我该如何做到这一点 以便链接能够正确链接到标
  • 如何在 SQL 查询中向 SQL Server 列添加加一 (+1)

    简单的问题是 如何将 MS Query 中的字段值加 1 我正在尝试将 1 1 添加到int使用参数化方法在我的 SQL Server 数据库中创建列 类似于变量上的 i 操作 我正在使用以下方法 public static int Upd
  • 使用文档和元素进行事件触发的区别

    给定这两个关于事件触发器的jquery document on click a data trigger colorbox function e a data trigger colorbox on click function e 当我使
  • 如何在 AutoHotkey 中读取多行用户输入?

    我有一个 AutoHotkey 脚本 需要从用户读取多行员工数据 InputBox userInput Employee Records Please enter employee records One per line Unfortun
  • XSLT 中的序列

    我的 xml 输入是
  • 为 iPod classic 编码视频

    我刚刚安装完ffmpeg在 debian wheezy 上使用这些说明 http trac ffmpeg org wiki UbuntuCompilationGuide http trac ffmpeg org wiki UbuntuCom
  • Lua 中的“加载”有什么作用?

    我试图解决我的理解问题loadLua 脚本中的函数 但没有该命令的任何示例或指南 它在他自己的 Lua 网站上讲述https www lua org manual 5 2 manual html pdf load https www lua
  • 如何在 WPF 中将字符串绑定到 double?

    我想设置一个绑定 问题是目标是 string 类型 但源是 double 类型 在以下代码中 VersionNumber 的类型为 double 当我运行它时 文本块是空的 没有抛出任何异常 我该如何设置这个绑定
  • 使用 cron 防止 Bash 脚本并行或重叠运行

    如果我的 cron 表中有以下条目 00 03 java prog1 sh 00 5 java prog2 sh 第一份工作通常需要 30 分钟左右才能完成 第二项工作大约需要10分钟 在某些特殊情况下 第一份工作需要两个多小时 有没有办法
  • jquery 和 updatepanel?

    我在 ASP NET 中有一个更新面板 可以进行部分页面刷新 我使用 jQuery 取得了一些成功on 方法不过 document ready function 仅在页面初始加载期间调用 而不是在每次 updatepanel 刷新后调用 我
  • 如何在 C++ 调试期间冻结 VSCode 中的线程

    我已经使用 VSCode 进行编码几个月了 真的是太棒了 然而 我发现我无法冻结一个线程 我能做的就是Pause all threads and Continue all threads 如果不冻结特定线程 则很难调试多线程程序 尤其是一些
  • 为什么 v1 Web 组件 customElements.define() 会抛出 TypeError

    我正在使用 v1 Web 组件 根据埃里克 比德尔曼 Eric Bidelman 的说法自定义元素 v1 可重用的 Web 组件 https developers google com web fundamentals primers cu
  • 将常规 Swift 函数转换为 Curry 函数

    我正在尝试将常规函数转换为咖喱函数 但得到Execution was interrupted 下面是我柯里化一个函数并执行 unsafeBitCast 来调用带有一个参数的函数并稍后使用第二个参数调用它的代码 func curry
  • 当“状态”从“打开”更改为“已完成”时,如何将一行移动到工作表(GOOGLE SHEET)的底部

    当 状态 更改为完整时 如何将行移动到同一张纸的底部 我试图找出一旦 Status B 列值从 OPEN 更改为 CLOSED 时如何将行移动到底部 工作表名称为 Sheet1 其中状态下拉菜单位于 B 列 下拉菜单包含 OPEN HOLD