我有一个简单的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);
}
答案 0 :(得分:1)
protocol Asset: Comparable {
func getPriority() -> AssetPriority
}
返回该单元格中的值:数字,字符串或类似内容。该值没有方法matchedCell.getValue()
。此方法是Range对象具有的方法。请改用copyTo
。
此外,copyTo的第一个参数也必须是Range类的对象。编写matchedCell.copyTo
不会创建这样的对象。使用(emptyCellLocation,1,1,1)
方法。