我是Apps脚本的新手,但我喜欢它提供的功能!
我有一个问题,如何用另一个工作表中设置的值填充特定数组中的单元格。 我有两张纸: 1.开票:列出项目(A列)以及发送发票的日期(B列) 2.发票:是以pdf格式发送的表格(我有相应的脚本)。它仅显示尚未发送发票的项目列表(基本FILTER功能)。
我想在“帐单”表的B列中设置在“发票”表中显示的日期。我的“问题”是我不想填充整个列,而只填充符合此条件的单元格:A列中有一个项目,而B列中没有日期。
这是sheet,用于了解我在寻找什么:
这当然很容易做到,但是由于我是从Apps脚本开始的,所以我不知道该怎么做。 非常感谢您的帮助。
到目前为止,我已经完成了很少的代码来获取日期:
function getDate() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var date = ss.getSheetByName('Invoice').getRange('D7').getValue();
}
答案 0 :(得分:0)
此函数从“发票”表中的单元格D7中获取日期,然后在“帐单”表中的B列向下迭代,如果同一行中A列的单元格为空,则在该单元格中输入日期:
function putDateInBilling() {
var direction = SpreadsheetApp.Direction.DOWN
var invoiceDate = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Invoice').getRange('D7').getValue();
var billingData = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Billing').getRange('A3:A').getNextDataCell(direction);
for (var row = 3; row <= billingData.getRow(); row++){
if (SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Billing').getRange(row, 2, 1, 1).isBlank())
SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Billing').getRange(row, 2, 1, 1).setValue(invoiceDate).setNumberFormat("yyyy-MM-dd");
}
}