将单元格值移动到同一电子表格中的另一个单元格

时间:2017-01-14 23:35:58

标签: google-apps-script google-sheets spreadsheet

我有一个简单的Google脚本,我正在努力工作,但我似乎无法理解我的错误。

该函数希望在找到空单元格后,将非粗体文本从电子表格的一个部分移动到另一个部分。

我已经验证了我可以获取值,如果值是加粗粗体或非粗体,以及空单元格的位置,但是当我尝试移动文本时,我收到此错误消息:

  

TypeError:在对象AS中找不到函数copyTo。

我知道我的错误来自这一行:

matchedCell.getValue().copyTo((emptyCellLocation,1,1,1),{contentsOnly:true});

建议?

function moveLowerValues() {

  var s = SpreadsheetApp.getActiveSheet();

  // Set values for position of cells to examine  

  var upperRowStart = 1;
  var columnStart = 1;

  var upperRange = s.getRange(upperRowStart, columnStart, 10);

  var upperValues = upperRange.getValues(); // Get all data in one call
  var emptyCellLocation = 1;

  while (upperValues[emptyCellLocation][0] != "" ) {
    emptyCellLocation++;
  } 

  var lowerRowStart = 11;  
  var lowerRange = s.getRange(lowerRowStart, columnStart, 10);

  var lowerValues = lowerRange.getValues();

  var lowerWeight = lowerRange.getFontWeights();

  // Move and clear cells which are not bold

  for (var rowStartOffset=0; rowStartOffset < lowerValues.length; rowStartOffset++) {

    // If the value of the cell does not equal bold, move and then delete it

    if (lowerWeight[rowStartOffset].toString() != "bold") {

      var matchedRow = lowerRowStart + rowStartOffset;
      var matchedCell = s.getRange(matchedRow, columnStart, 1, 1);
      matchedCell.getValue().copyTo((emptyCellLocation,1,1,1),{contentsOnly:true});
      // emptyCellLocation++
      // matchedCell.clear();

    }
  }

  // lowerRange.sort(1);

}

1 个答案:

答案 0 :(得分:1)

protocol Asset: Comparable { func getPriority() -> AssetPriority } 返回该单元格中的值:数字,字符串或类似内容。该值没有方法matchedCell.getValue()。此方法是Range对象具有的方法。请改用copyTo

此外,copyTo的第一个参数也必须是Range类的对象。编写matchedCell.copyTo不会创建这样的对象。使用(emptyCellLocation,1,1,1)方法。