Скрипт Google Spreadsheet, показывающий странное поведение - PullRequest
1 голос
/ 29 октября 2019

Я надеюсь, что кто-то может помочь мне с этой маленькой проблемой, с которой я столкнулся.

Я использую приведенный ниже скрипт для декодирования номера vin непосредственно в электронной таблице Google, и он работает почти на 100%.

function VinNumberonEdit(){

var sheetName = "Sheet1";

var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

var activeCell = ss.getActiveCell();

var activeRange = ss.getActiveRange();

if (activeRange.isBlank() && ss.getSheetName() == sheetName){

activeRange.offset(0, 1).clearContent()

activeRange.offset(0, 2).clearContent()

activeRange.offset(0, 3).clearContent()

}

else if(activeRange.getColumn() == 1 && activeRange.getRow() > 1 && ss.getSheetName() == sheetName){

var vin = ss.getActiveCell().getValue()

vin = encodeURI(vin)

var url = "https://vpic.nhtsa.dot.gov/api/vehicles/DecodeVinValues/"+vin+"?format=json"

var response = UrlFetchApp.fetch(url);

var w = JSON.parse(response.getContentText());

activeRange.offset(0, 1).setValue(w.Results[0].Make)

activeRange.offset(0, 2).setValue(w.Results[0].Model)

activeRange.offset(0, 3).setValue(w.Results[0].ModelYear)

}

}

Проблема, с которой я сталкиваюсь, заключается в том, чтобы добавить еще несколько строк или отформатировать эти ячейки. По какой-то причине он добавляет еще три нежелательных столбца.

Вероятно, моя проблема в том, что первое утверждение if:

if (activeRange.isBlank() && ss.getSheetName() == sheetName){

activeRange.offset(0, 1).clearContent()

activeRange.offset(0, 2).clearContent()

activeRange.offset(0, 3).clearContent()

}

Я загрузил gif, чтобы показать вам, ребята, в чем моя борьба.

https://giphy.com/embed/hqO5pFZZ2xWyQva66e

У кого-нибудь есть идеи, как это исправить? Я не программист. Я построил этот Франкенштейн, чтобы помочь мне в работе, но теперь я застрял в этой маленькой проблеме.

1 Ответ

0 голосов
/ 29 октября 2019

Попробуйте это:

function VinNumberonEdit(e){
  //e.source.toast('Flag1');
  var sh=e.range.getSheet();
  //e.source.toast('Flag2');
  if(sh.getName()!='Sheet188')return;
  if(e.range.isBlank() && e.range.columnStart==1 && e.range.columnEnd==1){
    //e.source.toast('Flag3');
    e.range.offset(0, 1).clearContent();
    e.range.offset(0, 2).clearContent();
    e.range.offset(0, 3).clearContent();
  }else if(e.range.columnStart==1 && e.range.columnEnd==1 && e.range.rowStart>1){
    //e.source.toast('Flag4');
    var vin=encodeURI(e.range.getValue());
    var url="https://vpic.nhtsa.dot.gov/api/vehicles/DecodeVinValues/"+vin+"?format=json";
    var response = UrlFetchApp.fetch(url);
    var w=JSON.parse(response.getContentText());
    //e.source.toast('flag5');
    e.range.offset(0, 1).setValue(w.Results[0].Make);
    e.range.offset(0, 2).setValue(w.Results[0].Model);
    e.range.offset(0, 3).setValue(w.Results[0].ModelYear);
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...