Quantcast
Channel: Hot Weekly Questions - Web Applications Stack Exchange
Viewing all articles
Browse latest Browse all 9782

Google Sheets script add formula into cell but cell value doesn't update

$
0
0

I have a script that when I run it, should add a formula info cells, if the cells are empty, the script works without any problems but if I try to run it again to update the values of the formula, the values doesn't change, here is the script:

function addInstructions(){  var sheetI = SpreadsheetApp.getActive().getSheetByName('Sheet');  var i,j;  for(i=7, j=7; i<57, j<57; i=i+2, j++){  var cell = sheetI.getRange(i,4);  cell.setFormula("=medInstructions("+i+")");  var cell2 = sheetI.getRange(i+1,2);  cell2.setFormula("=medInstructions2("+j+")");  }}

What I tried to do is add another script that clear the content of the cells before added the formular but for some reason that doesn't work, I also added sleep utility after the clear function and lastly I tried to set the formula to empty first before adding the actual formula but none of these had worked, here is the script with my trials

function addInstructions(){  clearInsatructions();  Utilities.sleep(200)  var sheetI = SpreadsheetApp.getActive().getSheetByName('Sheet');  var i,j;  for(i=7, j=7; i<57, j<57; i=i+2, j++){  var cell = sheetI.getRange(i,4);  cell.setFormula("")  cell.setFormula("=medInstructions("+i+")");  var cell2 = sheetI.getRange(i+1,2);  cell2.setFormula("")  cell2.setFormula("=medInstructions2("+j+")");  }}

the custom functions are:

function medInstructions(j) { var ss = SpreadsheetApp.getActiveSpreadsheet(); var infoSheet = ss.getSheetByName("sheet"); const meds = ["var1", "var2"] const instructions =["Ins 1", "Inst 2"] var med = infoSheet.getRange(j,2).getValue().toString().toLowerCase() if(med.indexOf(meds[0].toString().toLowerCase())>-1){ var info = instructions[0] } else if(med.indexOf(meds[1].toString().toLowerCase())>-1){ var info = instructions[1] } else if(med==0){ var info = "" } else{ var info = "Other" } return info }function medInstructions2(j) { var ss = SpreadsheetApp.getActiveSpreadsheet(); var infoSheet = ss.getSheetByName("sheet"); const meds = ["var3", "var4"] const instructions =["Ins 3", "Inst 4"] var med = infoSheet.getRange(j,2).getValue().toString().toLowerCase() if(med.indexOf(meds[0].toString().toLowerCase())>-1){ var info = instructions[0] } else if(med.indexOf(meds[1].toString().toLowerCase())>-1){ var info = instructions[1] } else if(med==0){ var info = "" } else{ var info = "Other" } return info } 

Any ideas how to fix this?Thanks


Viewing all articles
Browse latest Browse all 9782

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>