Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Таблица с кодом, в которой все работает
- //https://docs.google.com/spreadsheets/d/1IENUS6lIb9uALOGgRS8tUN4Ok80WL_oMsc3Z4XcT3lo/edit?usp=sharing
- function fromUrl() {
- //определяем активный диапазон, активный лист и забираем значения
- const range = SpreadsheetApp.getActiveRange();
- const sheet = SpreadsheetApp.getActiveSheet();
- const richText = range.getRichTextValues();
- //наполняем в цикле массив: текст, ссылка, формула
- const values = richText.map(g => [g[0].getText(), g[0].getLinkUrl(), `=HYPERLINK("${g[0].getText()}";"${g[0].getLinkUrl()}")`]);
- //вставляем, ориентируясь на границы выделенного диапазона
- sheet.getRange(range.getRow(), range.getColumn() + 1, values.length, values[0].length)
- .setValues(values)
- }
- И обратное превращение: выделяем диапазон [текст, ссылка] → получаем вшитые в текст ссылки
- function toUrl() {
- //определяем активный диапазон, активный лист и забираем значения, создаём пустой массив
- const range = SpreadsheetApp.getActiveRange();
- const sheet = SpreadsheetApp.getActiveSheet();
- const values = range.getValues();
- let richText = [];
- //наполняем массив в цикле, добавляя вшитые ссылки (RichTextValueBuilder)
- values.forEach(g => {
- richText.push([SpreadsheetApp
- .newRichTextValue()
- .setText(g[0])
- .setLinkUrl(g[1])
- .build()]);
- });
- //вставляем
- sheet.getRange(range.getRow(), range.getColumn() + 3, values.length, 1)
- .setRichTextValues(richText)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement