Update / Modify Data from Data Entry Form

37 views Asked by At

I have 2 sheets which is Billing Masterlist & Data Entry Form. When Data Entry Form is used, it will transfer the data into Billing Masterlist. I'm stucked with a code where I wanted to modify the data from the Data Entry Form when amended is required to the old data. Below is the code I write to modify the data but unsuccessful to modify.

Sheet for testing purpose: https://docs.google.com/spreadsheets/d/1CyALo_tE_75w1SCPCIiiqgToyYRAnZJKMdpBpW6G5mY/edit#gid=1949705865

function updateData() {
var SPREADSHEET_NAME = "Billing Masterlist"
var SEARCH_COL_year = 0;
var SEARCH_COL_hospital = 1;

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var formSS = ss.getSheetByName("Data Entry Form");

  var hospital = formSS.getRange("B7").getValue()[1];
  var year = formSS.getRange("D7").getValue()[0];

  var values = ss.getSheetByName("Billing Masterlist").getDataRange().getValues();
  var cont = 0;
  for (var i = 0; i < values.length; i++)

  {
    var row = values[i];

    if ((row[SEARCH_COL_year] == year && row[SEARCH_COL_hospital] == hospital ))

    {
      var s = (11 + cont).toString();
      var uValues =
      [[formSS.getRange("B" + s).getValue(),
      formSS.getRange("E" + s).getValue(),
      formSS.getRange("F" + s).getValue()]];
      ss.getSheetByName("Billing Masterlist").getRange(i+1, 1, 1, 63).setValues(uValues);
      cont = cont + 1;

    }
  }
}
1

There are 1 answers

0
Cooper On BEST ANSWER

You had the number of columns set incorrectly on the last last

function updateData() {
  var ss = SpreadsheetApp.getActive();
  var sh1 = ss.getSheetByName("Data Entry Form");
  var B7 = sh1.getRange("B7").getValue()[1];
  var D7 = sh1.getRange("D7").getValue()[0];
  var values = ss.getSheetByName("Billing Masterlist").getDataRange().getValues();
  var cont = 0;
  for (var i = 0; i < values.length; i++) {
    var row = values[i];
    if ((row[0] == D7 && row[1] == B7)) {
      var r = (11 + cont).toString();
      var uValues = [[sh1.getRange(r, 2).getValue(), sh1.getRange(r, 5).getValue(), sh1.getRange(r, 6).getValue()]];
      ss.getSheetByName("Billing Masterlist").getRange(i + 1, 1, 1, 3).setValues(uValues);
      cont = cont + 1;
    }
  }
}