Volond Apps
221 subscribers
216 photos
28 videos
22 files
994 links
Программирование для души и от лени
Добро пожаловать! У нас есть отличное сообщество любителей Excel и VBA, Google Sheet и Google Apps Script, а также всех тех, кто готов работать с этим программным обеспечением. Присоединяйтесь к нам, чтобы задавать и от
Download Telegram
formatToday.png
182.9 KB
Форматирование даты
/**
* Форматирование даты
* 31-10-20 при delim="-" и format="dd,mm,yy"
* @param {Date} today
* @param {string} [delim="."]
* @param {string} [format="dd,mm,yyyy"]
* @returns {string}
*/
function formatToday(today,delim=".",format="dd,mm,yyyy") {
var dd = today.getDate();
var mm = today.getMonth() + 1; //January is 0!
var yyyy = today.getFullYear();
var yy=[...yyyy.toString()].splice(2).join("")
if (dd < 10) { dd = '0' + dd }
if (mm < 10) { mm = '0' + mm }
eval(`var arr=[${format}]`)
today = arr.join(delim)// dd + '.' + mm + '.' + yyyy;
return today


}
Получаем динамические области экрана
var getRangesByPattern=()=>{
// Исходные данные
var ss=SpreadsheetApp.getActiveSpreadsheet()
var sheet=ss.getSheetByName('Щоденник')
var dataRange=sheet.getDataRange()
var findArr=dataRange.getValues()
var findCol=1
var Cols=10
// Патерны и функция поиска
var startPr=q=>/Дата приймання/i.exec(q[findCol])
var endPr=q=>/Всього.*/i.exec(q[findCol])
var find=(a,pred)=>a.findIndex(pred)

//Получаем диапазоны с листа
var headerOrderN=find(findArr,startPr)
var headerOrder=sheet.getRange(1, 2,headerOrderN,Cols)
var headerMain=sheet.getRange(headerOrderN+1, 2,1,Cols)
var mainN=find(findArr,endPr)
var main=sheet.getRange(headerOrderN+2, 2,mainN-headerOrderN-1,Cols)
var footer=sheet.getRange(mainN, 2,dataRange.getLastRow()-mainN-1,Cols)
console.log(main.getA1Notation())
return {headerOrder,headerMain,main,footer}

}
"Псевдоразделение" в Ячейке Google Sheet+Стрелки

="↙️ f"&char(10)&Rept("-";10)&char(10)&"b ↘️"
#formula
Удалили лист и слетели все формулы...HELP ME‼️
не
беда: ФОРМУЛЫ можно восстановить ... 🚑
function myFunction() {
var nameDelSheet = "Меня удалили"
var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets()
var range = sheets.filter(sh => sh.getName() != nameDelSheet).map(sh => {
var range = sh.getDataRange()
range.setFormulas(range.getFormulas())
}
Запускаем функцию "фоново"
Оригинал: Bruce Axtens

В последнее время я пробиваю 6-минутную стену таймаута в Apps Script.
Моя проблема заключается в том, чтобы поместить имена функций, которые я хочу запускать в фоновом режиме, в свойство скрипта, а затем извлекать их каждый раз при срабатывании таймера. Это, конечно, ограничено одной функцией в минуту. Во 2 части я покажу, как увеличить это значение до 4 в минуту, и, возможно, на любую долю минуты (с помощью устанавливаемых триггеров .)

Кроме того, это должны быть функции, которые не требуют каких-либо параметров и могут работать в фоновом режиме.


Читать полностью...
This media is not supported in your browser
VIEW IN TELEGRAM
Подсветка значений которые округлены с помощью пользовательского формата

Иногда
нужно понять какие числа были округлены
ссылка на таблицу с кодом
ссылка на исходный код
runSelectionAll.png
215.3 KB
**
* Пакетное выполнение функции в выделенном диапазоне
* Функция принимает ячейку как RANGE
* var fn=(cell)=>console.log(cell.getA1Notation())
* runSelectionAll(fn)
* @param {Function} fn Функция которая будет исполняться над каждой ячейкой диапазона
*/
function runSelectionAll(fn){


const ss = SpreadsheetApp.getActiveSpreadsheet()
const sheet = ss.getActiveSheet()
var selection = sheet.getSelection();
var ranges = selection.getActiveRangeList().getRanges();
ranges.forEach(range=>{
var res=expandA1Notation([range.getA1Notation()])
var rangeList=sheet.getRangeList(res[0]).getRanges()
rangeList.forEach(fn)
})

}
Захотелось получать ссылку на регион как в Excel
Задаем
ссылку вида:

[root\Имя Папки\Имя таблицы]'Имя листа'!А1
Вот что получилось:
Этот восхитительный Юникод
Оригинал:
Юникод — это потрясающе! До его появления международная коммуникация была изнурительной: каждый определял свой отдельный расширенный набор символов в верхней половине ASCII (так называемые кодовые страницы). Это порождало конфликты. Просто подумайте, что немцам приходилось договариваться с корейцами, где чья кодовая страница. К счастью, появился Юникод и ввёл общий стандарт. Юникод 8.0 охватывает более 120 000 символов из более 129 письменностей. И современные, и древние, и до сих пор не расшифрованные. Юникод поддерживает текст слева направо и справа налево, наложение символов и включает самые разные культурные, политические, религиозные символы и эмодзи. Юникод потрясающе человечен, а его возможности сильно недооцениваются.
читать далее
This program uses the library Telegram API Bot Library Version 2 on Google Apps Script

Translite Code Comments by Telegram beta (ПЕРЕВОД КОММЕНТАРИЕВ В КОДЕ)
(код)
When you receive a message with a code, if you reply to it, the bot will try to translate one-line comments in the code into the language of your choice, also, since it uses this library, it will try to translate some text messages into code
Данная программа использует библиотеку Telegram API Bot Library Version 2 на Google Apps Script


При получении сообщения с кодом, если вы на него ответите, бот попробует перевести однострочные комментарии в коде на выбранные вам вами язык, также так как он использует данную библиотеку ,он попробует перевести некоторые текстовые сообщения в коде
Forwarded from Артем //api.net.ua
Отвечу сам на свой вопрос, нашел ссылку HTTPS по которой можно открыть Вайбер сразу по номеру телефона, Ссылкой можно пользоваться на постоянной основе, Вот демо таблица
https://docs.google.com/spreadsheets/d/1uJ9fJXX72_kCyFXOhpR2t92TcGLm__7i0Yb_08U7xaw/edit?usp=sharing
Написал что бы люди могли выделить формулы на листе
Аналог

https://pastebin.com/RmrRYKWW
таблица с скриптом
Как создать и запустить простой автономный скрипт,
который создает документ Google и
отправляет Вам ссылку по электронной почте.
скрипт