Получи случайную криптовалюту за регистрацию!

Работаем со вшитыми (богатыми ) в ячейки ссылками Примеры про | Google Таблицы

Работаем со вшитыми (богатыми ) в ячейки ссылками
Примеры простых скриптов

Друзья, встречалась вам ситуация, когда приходилось обработать столбец, в котором были вшитые в текст ссылки?

Такие ссылки нельзя отделить от текста с помощью формул, но можно используя скрипты, а именно метод RichTextValue.

Простой скрипт: выделяем диапазон ссылок → запускаем скрипт → получаем три столбца (текст отдельно, ссылка отдельно, формула с ссылкой и текстом):

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)
}

Таблица с кодом, в которой все работает

Код с комментариями отдельно (если сложно читать в посте)

=
ОГЛАВЛЕНИЕ КАНАЛА, категории | всё оглавление
НАШ КУРС НА SKILLBOX: Таблицы и GAS, Excel и VBA
ДОНАТЫ: реквизиты