Если заявление, если A2 пусто, не запускать код - иначе запускать код, если у A2 есть данные - Google Apps Script / GoogleSheets - PullRequest
2 голосов
/ 15 февраля 2020

Я пытался заставить это работать, так как я не достаточно опытен, чтобы понять, что я делаю неправильно. (он работает отлично, если я вручную запускаю скрипт)

Ожидаемый результат = если у A2 есть данные - запустите приведенный ниже код. если A2 пуст - не запускайте код.

function IfStatement() {
var app = SpreadsheetApp;
var activeSheet = app.getActive().getActiveSheet();
var workingCell = activeSheet.getRange(2, 1).getValue();

if(workingCell === ""){
}

function kk() {
var sheet = SpreadsheetApp.getActive();
sheet.setActiveSheet(sheet.getSheetByName('TOP UP NEEDED'), true);
sheet.getRange('D2').activate();
sheet.getCurrentCell().setFormula('=QUERY({\'SKU & Qty\'!$A$3:$C},"SELECT * WHERE Col1 MATCHES \'" & 
JOIN("|",FILTER(A:A, NOT(ISBLANK(A:A)))) & "\' ")');
addCheckboxToI2();
}}

Hoping I was close !

Ответы [ 2 ]

4 голосов
/ 15 февраля 2020

Если вы хотите запустить скрипт function kk() {###}, когда workingCell не пуст, как насчет этой модификации?

Модифицированный скрипт:

function IfStatement() {
  var app = SpreadsheetApp;
  var activeSheet = app.getActive().getActiveSheet();
  var workingCell = activeSheet.getRange(2, 1).getValue();
  if (workingCell === "") return;  // Modified

  var sheet = SpreadsheetApp.getActive();
  sheet.setActiveSheet(sheet.getSheetByName('TOP UP NEEDED'), true);
  sheet.getRange('D2').activate();
  sheet.getCurrentCell().setFormula('=QUERY({\'SKU & Qty\'!$A$3:$C},"SELECT * WHERE Col1 MATCHES \'" & JOIN("|",FILTER(A:A, NOT(ISBLANK(A:A)))) & "\' ")');
  addCheckboxToI2();
}
  • if(workingCell === ""){} был изменен на if (workingCell === "") return;.
  • function kk() { был удален.

В результате этой модификации, когда значение workingCell не пусто, приведенный ниже скрипт if (workingCell === "") return; работает. Когда значение workingCell пусто, сценарий заканчивается на if (workingCell === "") return;.

Если я неправильно понял ваш вопрос, и это не то направление, в котором вы хотите, я приношу свои извинения.

2 голосов
/ 15 февраля 2020

Вы имеете в виду что-то подобное?

function doSomething() {

var app = SpreadsheetApp;

var activeSheet = app.getActive().getActiveSheet();
var workingCell = activeSheet.getRange(2, 1).getValue();

var otherSheet = app.getActive().getSheetByName('TOP UP NEEDED');
var otherCell = otherSheet.getRange('D2');

var formula = '=QUERY({\'SKU & Qty\'!$A$3:$C},"SELECT * WHERE Col1 MATCHES \'" & JOIN("|",FILTER(A:A, NOT(ISBLANK(A:A)))) & "\' ")';

  if(workingCell == ""){

  }
  else{

  otherCell.setFormula(formula);

  }

//addCheckboxToI2();
//ReferenceError: 'addCheckboxToI2' is niet gedefinieerd. (regel x, bestand 'y')

}

У меня есть некоторые сомнения по поводу формулы, но я не знаю достаточно формул, чтобы сказать что-то полезное об этом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...