function onEdit(event) {
//Возникает при изменении ячейки
var ss = event.source.getActiveSheet();//Текущий лист
var address = event.range.getA1Notation().toUpperCase();//Адрес ячейки
var row = event.range.getRow(); //Номер строки
var col = event.range.getColumn(); //Номер столбца
var newValue = event.value; //Новое значение
var oldValue = event.oldValue; //Старое значение
if (["Лист1","Лист2"].indexOf(ss.getName())==-1) return; //Указываем на каких листах должен работать скрипт
//Можно при желании ещё фильтровать по строке/столбцу (row/col), или по старому/новому значению (oldValue/newValue)
var archive = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Архив");
archive.getRange(archive.getLastRow()+1, 1).setValue(
formatDateTime(new Date())+" " + "[" + ss.getName() + "!" + address + "] '" + (oldValue==undefined?"":oldValue) + "' >> '" + (newValue==undefined?"":newValue) +"'"
);
};
function formatDateTime(date) {
var dd = date.getDate();
if (dd < 10) dd = '0' + dd;
var mm = date.getMonth() + 1;
if (mm < 10) mm = '0' + mm;
var yy = date.getFullYear() % 100;
if (yy < 10) yy = '0' + yy;
var hh = date.getHours();
if (hh < 10) hh = '0' + hh;
var MM = date.getMinutes();
if (MM < 10) MM = '0' + MM;
var ss = date.getSeconds();
if (ss < 10) ss = '0' + ss;
return dd + '.' + mm + '.' + yy + ' ' + hh + ':'+ MM + ':'+ ss;
}
const sheetName = 'Sheet1';
const sheet = book.getSheetByName(sheetName);
if(sheet){
cnsole.log(`Лист с именем ${sheetName} есть`);
}
const sheetName = 'Sheet1';
const sheet = book.getSheetByName(sheetName) || book.insertSheet(sheetName);
function findArray ($ar, $findValue, $executeKeys){
$result = array();
foreach ($ar as $k => $v) {
if (is_array($ar[$k])) {
$second_result = findArray ($ar[$k], $findValue, $executeKeys);
$result = array_merge($result, $second_result);
continue;
}
if ($v === $findValue) {
foreach ($executeKeys as $val){
$result[] = $ar[$val];
}
}
}
return $result;
}
/**
* @file Dragg down a formula
* @url https://qna.habr.com/q/709715
* */
/**
* User action. Runs the snippet
*/
function run() {
const sheet = SpreadsheetApp.getActiveSheet();
const base = sheet.getRange('C3:C');
const colFormula = sheet.getRange('J3');
draggDownFormulas_(base, colFormula);
}
/**
* @param {GoogleAppsScript.Spreadsheet.Range} base
* @param {GoogleAppsScript.Spreadsheet.Range} colFormula
*/
function draggDownFormulas_(base, colFormula) {
const baseValues = base.getValues();
const lastBase =
baseValues.length - baseValues.reverse().findIndex(row => row[0] !== '');
const colFormulaFormula = colFormula.getFormula();
colFormula
.getSheet()
.getRange(base.getRow(), colFormula.getColumn(), lastBase)
.setFormula(colFormulaFormula);
}
C
заполнена на одну строку ниже, чем массив данныхJ3
$products = $this->getProductList();
if ($products) {
$products = $this->getProductList();
if (is_iterable($products)) {
$products = $this->getProductList();
if (is_countable($products)) {
$params = [
'cmd' => [
'kp_num' => 'crm.deal.list?' . http_build_query(
[
'filter' => [
'UF_CRM_***' => '111',
],
'select' => [
'ID',
'COMPANY_ID',
'STAGE_ID',
'UF_CRM_***',
'DATE_MODIFY'
]
]
),
'ord_num' => 'crm.deal.list?' . http_build_query(
[
'filter' => [
'UF_CRM_***' => '222',
],
'select' => [
'ID',
'COMPANY_ID',
'STAGE_ID',
'UF_CRM_***,
'DATE_MODIFY'
]
]
),
]
];
wget -r -k -l 7 -p -E -nc http://site.com/
let obj = {}
for(let i =0; i<1000; i++){
obj['i'+i]=i
}
console.time('time')
for(let i =0; i<1000; i++){
const objResult = obj['i'+i];
}
console.timeEnd('time')
let obj = []
for(let i =0; i<1000; i++){
obj.push('i'+i)
}
console.time('time')
for(let i =0; i<1000; i++){
const arrResult = obj.find(el => el === 'i'+i);
}
console.timeEnd('time')
getTime
.function isDate(value){
return value && value.getTime;
}
function isDate(date){
return date instanceof Date && !isNaN(date.valueOf());
}
var birthday1 = ss1.getRange("D8").getValue();
var birthday = isDate(birthday1) ?
Utilities.formatDate(birthday1, "GMT+3", "dd-MM-yyyy") :
undefined;