Я использую VBA в течение многих лет, но у меня возникли некоторые трудности при конвертации в google script и javascript.Я пытаюсь создать номер счета-фактуры на основе даты счета-фактуры, принимая во внимание предыдущие записи с той же датой, используя формат YYMMDD ## (например, 3 счета-фактуры 13/13/2018 создадут номера счетов-фактур 18111301, 18111302 и 18111303)в Google Sheets.Я не могу использовать формулу для этой конкретной ситуации.
Я провел последние 3 дня, копаясь в постах и учебных пособиях GS, но безуспешно.Я должен что-то упустить.Я знаю, что это должно быть какое-то быстрое решение для чего-то действительно легкого, но я был бы очень признателен за помощь.
В этой текущей итерации я пытался преобразовать значение поиска и набор данных в формат даты, но япопробовал это без преобразования.Я извиняюсь, если заметки кажутся обильными.Я начинаю составлять карту каждого шага, когда что-то идет не так.
function testbed0() {
var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var dte = ss.getActiveCell().getValue() //invoice date entered by user in column 1
var cdte = Date(dte); //???convert cell value for comparison to date
var lrow = ss.getLastRow();
var r = ss.getRange(1, 1, lrow, 1); //set range to first column, rows 1 to last with data
var data = Date(r.getValues()); //???convert dataset to date format
var count = 0; //start counter at 0
//compare variable with dataset & increase counter for matches
for (var i = 0; i < data.length ; i++) {
if (data[i][0] == cdte) {
count++;
}
}
return (count);
//parts of invoice number
var invDy = ("0" + (dte.getDate())).slice(-2);
var invMo = ("0" + (dte.getMonth() + 1)).slice(-2);
var invYr = ("0" + (dte.getYear())).slice(-2);
var invCt = ("0" + count).slice(-2);
//enter new invoice number in invoice column of active row
ss.getActiveCell().offset(0, 2).setValue(invYr+invMo+invDy+invCt);
}