#google-sheets #script
Вопрос:
«Дорогая » община»,
Мне нужна твоя помощь.
Я хотел бы поместить ячейку в определенный диапазон «A1:A20», который содержит как минимум 36 x «-«. Для этого я попытался использовать «————————————«amp;»*» в мой сценарий ниже, но у меня не работает :
function testCheckv1() {
var ss=SpreadsheetApp.getActiveSpreadsheet();
var spreadsheet = SpreadsheetApp.getActive();
var sheet = spreadsheet.getActiveSheet();
var ui = SpreadsheetApp.getUi();
var donneesrecherche = sheet.getRange("A1:A20").getValues();
for (var i = 0; i < 10; i ) {
if(donneesrecherche[i][0] == "------------------------------------"amp;"*"){
var search0 = sheet.getRange(i 2,1).getRow();
// here is for a test to obtain the searched value
sheet.getRange("A1").setValue(search0)
}}};
Осуществимо ли это ?
Заранее большое спасибо за вашу помощь.
Окончательное использование, например, в этой таблице :
После проверки строки 1 : критерии выполнены да -> найдите строку, затем выполните сценарий X нет ->> перейдите к строке 2
После проверки строки 2 : критерии выполнены да -> найдите строку, затем выполните сценарий X нет ->> перейдите к строке 3
…
На изображении сценарий должен расположить строку как «17» и выполнить сценарий X.
Сценарий X просто удалит строки с 1 по 17, чтобы строка 18 стала первой строкой листа.
С наилучшими пожеланиями, Энтони.
Комментарии:
1. Пожалуйста, проясните вашу конкретную проблему или предоставьте дополнительные сведения, чтобы точно указать, что вам нужно. Поскольку это написано в настоящее время, трудно точно сказать, о чем вы просите.
Ответ №1:
То, чего вы просто пытаетесь достичь, может быть выполнено без сценариев приложений Google. Если вы видите в этой электронной таблице, я использовал формулу фильтра, в которой перечислены все совпадающие адреса из A1:A10 в ячейке C3, а также их значения в столбце справа. Похоже, вы пытаетесь получить номер строки любой соответствующей ячейки, который показан ниже в адресе или может быть выполнен с помощью этой формулы:
=filter(row(A1:A10),ISNUMBER(find(rept("-",36),A1:A10)))
Если вам действительно нужен ответ на сценарий, это должно помочь вам начать. Непонятно, как вы хотите справиться с успешными матчами. Что делать, если их больше одного? Приведенный ниже код будет зарегистрирован при обнаружении совпадения, и после этого вы сможете написать свой код.
function testCheckv1() {
var ss = SpreadsheetApp.getActiveSheet();
const zRepeatNumber = 36;
var donneesrecherche = ss.getRange("A1:A20").getValues();
var tangoText = '';
var nukeRows = [];
for (var i = 0; i < zRepeatNumber; i ) {
tangoText = tangoText '-';
}
for (var r = 0; r < donneesrecherche.length; r ) {
var zRow = donneesrecherche[r];
for (var c = 0; c < zRow.length; c ) {
var theValue = zRow[c] "z";
if (theValue.search(tangoText) >= 0) {
nukeRows.push(r 1);
}
}
}
for (var k = nukeRows.length - 1; k >= 0; k--) {
ss.deleteRow(nukeRows[k]);
}
}
Комментарии:
1. Дорогая, Большое спасибо за вашу неоценимую помощь. Я отредактировал свой вопрос и добавил цель этого проекта. Я как можно скорее проверю код, который вы набрали. Этот вопрос ответит на часть существующего проекта. В этом проекте код запрашивает количество строк для удаления пользователю с помощью ui.prompt. Чтобы позволить сценарию работать без человеческого действия, я создал этот вопрос. В моем примере требуется удалить 17 строк, но это значение может измениться, потому что данные могут отличаться. Еще раз спасибо.
2. @AnthonyMALBRANQUE Я обновил свой ответ, включив функцию удаления любых строк, соответствующих проверке. Надеюсь, это сработает, однако ваш вопрос заключался в том, как найти ячейку, на который дан ответ, поэтому я был бы очень признателен, если бы вы нажали
accept
. Удачи.3. Дорогая, еще раз большое спасибо за вашу неоценимую помощь. Ваш скрипт делает то, что вы сказали : «он включает функцию удаления любых строк, соответствующих проверке». Что мне нужно, так это немного другое : скрипт проверяет строку 1, результат соответствует да -> найдите строку и удалите строки A1-A1, результат соответствует нет ->> перейдите к строке 2. Затем сценарий проверяет строку 2, результат соответствует да -> найдите строку и удалите строки А1-А2, результат соответствует нет — > > перейдите к строке 3. и т. Д… В моем примере (рисунок) сценарий должен соответствовать строке 17, поэтому строки для удаления-это A1:A17. Еще раз спасибо.
4. Я думаю, что вам нужно более тщательно проанализировать, как работает StackOverflow. На вопрос, который вы опубликовали, был дан ответ, а это значит, что вы должны нажать
accept
, прежде чем просить больше людей работать на вас бесплатно.5. Дорогая, ты предлагаешь мне принять твой ответ и перепостить вопрос ? Действительно, ценный сценарий, который вы мне предложили, не совсем соответствует моим потребностям.