google-apps-script - 如果相邻单元格不为空,则复制单元格值
问题描述
我有一张“旅行费用”表,其中所有来自不同货币的费用都通过 googlefinance 转换为美元。我需要将该金额复制到另一个单元格以形成月度报告,这样如果当月汇率发生显着变化,我就可以存储正确的金额。
基本上,如果 U 列中的单元格不是空白 => 将其复制到 V 中的相邻单元格。
我将以下 scipt 用于:1)时间戳(完美运行)2)复制货币(可行,但不是我需要的)。
function onEdit(e)
{var ss = e.source.getActiveSheet();
if (ss.getName() != "123") // i use this for testing
{
var actRng = ss.getActiveRange();
var editColumn = actRng.getColumn();
var rowIndex = actRng.getRowIndex();
var headers = ss.getRange(1, 1, 1, ss.getLastColumn()).getValues();
var dateCol = headers[0].indexOf("Date of expence") + 1;
var orderCol = headers[0].indexOf("Name") + 1;
if (dateCol > 0 && rowIndex > 1 && editColumn == orderCol)
{
ss.getRange(rowIndex, dateCol).setValue(Utilities.formatDate(new Date(), "UTC+8", "dd-MM-yy"));}
}
{
var source = ss.getRange ("U3:U400");
source.copyTo (ss.getRange ("V3:V400"), {contentsOnly: true});}
}
我想这应该在 2 个不同的脚本中完成。这是我第一次使用谷歌脚本,所以对我来说很困惑)
将接受所有建议,提前谢谢!)
解决方案
尝试这个:
on Edit(e) {
if(!e.range.getSheet().getRange(e.range.rowStart,23).isBlank()) {
e.range.getSheet().getRange(e.range.rowStart,24).setValue(e.range.getSheet().getRange(e.range.rowStart,23).getValue())
}
推荐阅读
- javascript - 使用 JS Fetch API 上传时有效负载过大错误 (413)。通过邮递员工作正常
- c# - CsvHelper 不为双精度解析空列
- .net - 如何使用 Visual Studio 安装程序项目扩展创建升级安装程序
- node.js - 睡眠后 Cron 作业延迟
- office-js - 使用 excel javascript apis 获取数据透视表的数据源
- javascript - 如何通过 Django 显示 javascript 警报
- java - 使用 Kubernetes 和 sping boot 在微服务之间共享缓存
- javascript - 如何处理 401 Unauthorized 响应与使用 RxJS 的 Angular 8 服务中的其他错误不同?
- javascript - 从外部文件python导入变量
- swift - 如何在不同的选项卡中访问相同的视图