Google apps script 填写-用于电子表格的谷歌应用程序脚本
是否有一个函数可以将数据填充到上面一行的所有空单元格 如果没有,谁能帮我一个谷歌应用程序脚本(或其他解决方案),可以通过我的谷歌电子表格中的每一行,检查空单元格,如果找到,用上面一行的数据填充它们 我认为这样一个函数应该已经包含在电子表格程序中(以及“填充”) 谢谢大家! 这样的函数应该已经包含在电子表格程序I中 思考(以及“填充”) 我将尝试在GSheet中描述与此相关的本机功能Google apps script 填写-用于电子表格的谷歌应用程序脚本,google-apps-script,google-sheets,Google Apps Script,Google Sheets,是否有一个函数可以将数据填充到上面一行的所有空单元格 如果没有,谁能帮我一个谷歌应用程序脚本(或其他解决方案),可以通过我的谷歌电子表格中的每一行,检查空单元格,如果找到,用上面一行的数据填充它们 我认为这样一个函数应该已经包含在电子表格程序中(以及“填充”) 谢谢大家! 这样的函数应该已经包含在电子表格程序I中 思考(以及“填充”) 我将尝试在GSheet中描述与此相关的本机功能 如果双击选定单元格或区域右下角的蓝色小正方形,将自动将该单元格填充到左侧已填充单元格块的末尾。或者,您可以拖动这个
originRange
中的公式填充/扩展到以下所有内容,就像复制和粘贴一样
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Name");
var formulas = sheet.getRange(10, 1, 1, 10).getFormulasR1C1();
var newRange = sheet.getRange(11, 1, 1, 10);
newRange.setFormulasR1C1(formulas);
使用getFormulasR1C1()然后使用setFormulasR1C1(公式)
此函数模拟鼠标拖动公式
请注意,如果单元格不包含公式,它将显示错误。您需要通过清空单元格来解决此问题 这里有一个工作脚本,可以在你的谷歌工作表中添加自定义菜单。加载Google工作表的脚本,在工作表上选择一个区域,然后从自定义菜单中选择“填充空白单元格”。空白单元格将填充上述单元格的值
function onOpen() {
var ui = SpreadsheetApp.getUi();
// Or DocumentApp or FormApp.
ui.createMenu('Custom Menu')
.addItem('Fill Blank Cells', 'menuItem1')
.addToUi();
}
function menuItem1() {
fillBlankWithAbove()
}
//Iterates over the range from top to bottom
//and left to right, and fills blank cells
//with the value right above them.
function fillBlankWithAbove() {
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getActiveRange();
Logger.log('Range height is: ' + range.getHeight());
var values = range.getValues();
var width = values[0].length;
var height = values.length;
Logger.log('Width is ' + width);
Logger.log('Height is ' + height);
for (var i = 0; i < width; i++) {
var lastVal = '';
for(var j = 0; j < height; j++) {
var currValue = values[j][i];
var dataType = typeof(currValue);
//Empty string check returns true if dataType
//is a number, and value is zero. In that case
//we don't want to overwrite the zero, so only
//check emptyString for string types.
if(currValue === undefined ||
(dataType === 'string' && currValue == '')
) {
//getCell parameters are relative to the current range
//and ones based
var cell = range.getCell(j+1, i+1);
cell.setValue(lastVal);
}
else {
lastVal = currValue;
}
}
}
SpreadsheetApp.flush();
}
函数onOpen(){
var ui=SpreadsheetApp.getUi();
//或文档或格式。
ui.createMenu(“自定义菜单”)
.addItem('填充空白单元格','菜单项1')
.addToUi();
}
函数menuItem1(){
用上面的()填充空格
}
//在从上到下的范围内迭代
//并从左向右填充空白单元格
//值正好在它们上面。
函数fillblankwithover(){
var sheet=SpreadsheetApp.getActiveSheet();
var range=sheet.getActiveRange();
Logger.log('范围高度为:'+范围.getHeight());
var values=range.getValues();
变量宽度=值[0]。长度;
变量高度=值。长度;
Logger.log('宽度为'+宽度);
Logger.log('高度为'+高度);
对于(变量i=0;i1
,=A1+1
,并将其应用于公式(A2),它将展开我不确定是否还有其他更好的方法!:(谢谢你的剧本!我得先休息,然后再补
function onOpen() {
var ui = SpreadsheetApp.getUi();
// Or DocumentApp or FormApp.
ui.createMenu('Custom Menu')
.addItem('Fill Blank Cells', 'menuItem1')
.addToUi();
}
function menuItem1() {
fillBlankWithAbove()
}
//Iterates over the range from top to bottom
//and left to right, and fills blank cells
//with the value right above them.
function fillBlankWithAbove() {
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getActiveRange();
Logger.log('Range height is: ' + range.getHeight());
var values = range.getValues();
var width = values[0].length;
var height = values.length;
Logger.log('Width is ' + width);
Logger.log('Height is ' + height);
for (var i = 0; i < width; i++) {
var lastVal = '';
for(var j = 0; j < height; j++) {
var currValue = values[j][i];
var dataType = typeof(currValue);
//Empty string check returns true if dataType
//is a number, and value is zero. In that case
//we don't want to overwrite the zero, so only
//check emptyString for string types.
if(currValue === undefined ||
(dataType === 'string' && currValue == '')
) {
//getCell parameters are relative to the current range
//and ones based
var cell = range.getCell(j+1, i+1);
cell.setValue(lastVal);
}
else {
lastVal = currValue;
}
}
}
SpreadsheetApp.flush();
}