Скрипт Google таблиц — Как найти ячейку

#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. Дорогая, ты предлагаешь мне принять твой ответ и перепостить вопрос ? Действительно, ценный сценарий, который вы мне предложили, не совсем соответствует моим потребностям.