如果相邻单元格不为空,则复制单元格值

时间:2019-03-28 14:21:24

标签: google-apps-script

我有一个“旅行费用”表,其中所有来自不同货币的费用都通过googlefinance转换为美元。我需要将该金额复制到另一个单元格中以形成月度报告,这样,如果货币汇率在一个月内发生显着变化,则可以存储正确的金额。

基本上,如果U列中的单元格不是空白=>将其复制到V中的相邻单元格。

https://docs.google.com/spreadsheets/d/1iBIg8b4BuUyHiuvogePyRbOhQulp1rCtUMXHpN_YKuQ/edit#gid=1586216805

我将以下代码用于: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种不同的脚本来完成。这是我第一次使用Google脚本,因此对我来说很困惑)

将接受所有建议,谢谢!!

1 个答案:

答案 0 :(得分:0)

尝试一下:

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())
}