Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 单元格引用超出范围-但我使用GetDataRange()_Google Apps Script_Google Sheets - Fatal编程技术网

Google apps script 单元格引用超出范围-但我使用GetDataRange()

Google apps script 单元格引用超出范围-但我使用GetDataRange(),google-apps-script,google-sheets,Google Apps Script,Google Sheets,我尝试了一系列解决方案,但总是以单元格ref超出范围结束 我以为GetDataRange()&GetLastRow()会覆盖最后一个非空单元格,但我被卡住了。我试图硬编码我的单元格值(从X到Y),但似乎没有任何变化 var course; var searchingCol; function CalculateFurnitureList() { GetCourseString(); FindColumnNumber(course); GetSpecialFurnitures

我尝试了一系列解决方案,但总是以单元格ref超出范围结束

我以为
GetDataRange()
&
GetLastRow()
会覆盖最后一个非空单元格,但我被卡住了。我试图硬编码我的单元格值(从X到Y),但似乎没有任何变化

var course; 
var searchingCol; 

function CalculateFurnitureList()
{
  GetCourseString(); 
  FindColumnNumber(course); 
  GetSpecialFurnituresValue(); 
}

function GetCourseString()
{
  var activeSheet = SpreadsheetApp.getActiveSheet();
  var courseType = activeSheet.getRange("A2").getValue();
  Browser.msgBox('Generate furniture list for ' + courseType + ' course');

  course = courseType;  
}

function FindColumnNumber(ct)
{
  var furnitureSheet = SpreadsheetApp.getActive().getSheetByName("MaterielCours"); 
  var range = furnitureSheet.getDataRange(); 
  var width = range.getWidth();

  //Search every cell in the designated area to find the course name
  for (var i = 1; i <= width; i++)
  {
    var data = range.getCell(1,i); 
    if (data.getValue() == ct)
    {
      Browser.msgBox('Trouvé ! ' + data.getValue() + ' se trouve en : ' + i +':1');
      searchingCol = i; 
    }
  }
}

function GetSpecialFurnituresValue()
{
  Browser.msgBox(searchingCol); 

  var furnitureSheet = SpreadsheetApp.getActive().getSheetByName("MaterielCours"); 
  var range = furnitureSheet.getDataRange();
  var length = range.getLastRow();

  for (var i = 1; i < length; i++)
  {
    var data = range.getCell(searchingCol, i); 
    if (data.getValue() !== "")
    {
      // Do nothing
    }
    else
    {
      if (data == "Abs")
      {
        Browser.msgBox('NTM');
      }
      else
      {
        // Calculate value
      }
    }
  }
}
var课程;
var-searchingCol;
函数CalculateFurnitureList()
{
GetCourseString();
FindColumnNumber(课程);
GetSpecialFurnituresValue();
}
函数GetCourseString()
{
var activeSheet=SpreadsheetApp.getActiveSheet();
var courseType=activeSheet.getRange(“A2”).getValue();
msgBox('为'+courseType+'course'生成家具列表');
课程=课程类型;
}
函数FindColumnNumber(ct)
{
var furnitureSheet=SpreadsheetApp.getActive().getSheetByName(“materialcours”);
var range=furnitureSheet.getDataRange();
var width=range.getWidth();
//搜索指定区域中的每个单元格以查找课程名称
对于函数GetSpecialFurnitureValues中的(var i=1;i(编辑我的原始答案-我一定累了!),有几点需要注意

for循环使用i
for循环使用i// for (var i = 1; i < length; i++) for (var i = 1; i <= length; i++)
// var data = range.getCell(searchingCol, i);   
var data = range.getCell(i, searchingCol);