Я пытаюсь заменить некоторый текст в Документе Google альтернативным текстом и соответствующей ссылкой.(Ссылка на ячейку в Google SS.)
Я работаю над ответом на Скрипт Служб Google. Сделайте текст активируемым URL-адресом, используя replaceText ()
Сценарий выполняется, но в последней строке появляется следующая ошибка:
"Ошибка выполнения: индекс (114) должен быть меньше длины содержимого (8). (Строка 116, файл" Код ")"
«114» относится к длине URL.«8» относится к длине заменяющего текста, который является BTW, «Новая песня».
Кажется, что этот подход имеет фатальный недостаток в том, что длина ссылки (URL) не может превышатьдлина заменяемого текста.(Я не могу представить, что это действительно так, но я не вижу пути решения проблемы.) Я искал альтернативные подходы к коду, который я использовал, но не нашел ни одного.
Примечание. Любые переменные ниже, которые не определены в этом сценарии, определены в сценарии, предшествующем этому разделу (который я опущен для краткости).Все эти переменные работают правильно.Ошибка всегда возникает в последней строке приведенного ниже сценария.
var titleUrl = titleLink;
var targetString = "Song Title"
var replacementString = songTitle
var element = body.findText(targetString);
var start = element.getStartOffset();
var text = element.getElement().asText();
text.replaceText(targetString, replacementString );
text.setLinkUrl(start, start+titleUrl.length, titleUrl);
Я ожидаю, что старый текст, «Название песни» будет заменен на «Новая песня», а «Новая песня» будеткликабельная ссылка на ячейку в Google Sheet.
Обновление
Чтобы замкнуть цикл на этом;окончательный код:
var titleUrl = titleLink;
var targetString = "Song Title"
var replacementString = songTitle
var element = body.findText(targetString);
var text = element.getElement().asText();
text.replaceText(targetString, replacementString );
text.setLinkUrl(titleUrl);