Mil*_*lle 21 google-sheets google-apps-script
是否有一个函数可以将数据填充到上面一行中的所有空单元格?
如果没有,任何人都可以帮助我使用Google Apps脚本(或其他解决方案)来浏览我的Google电子表格中的每一行,检查空单元格,如果找到,请用上面的行填充数据?
这样的功能应该已经包含在我认为的电子表格程序中(并且"填满").
谢谢!
Ada*_*amL 51
这样的功能应该已经包含在我认为的电子表格程序中(并且"填满").
我将尝试描述GSheets中与此相关的本机功能.
如果双击所选单元格或范围右下角的蓝色小方块,则会自动将该单元格填充到左侧填充单元格块的末尾.或者,您可以将这个小蓝框(向下,向上,向左或向右)拖动到自动填充.
您可以选择下面的源单元格和单元格(请参阅第4点),然后按Ctrl+ D,以填充.您也可以使用Ctrl+ R填充正确.
您可以选择源单元格,按Ctrl+ C复制,然后选择上方的单元格(或左侧 - 再次参考第4点),然后按Ctrl+ 键V进行粘贴.这具有填充(或左)的效果.
您可以按快速选择空白单元格下(或以上,或左或右的)源小区Ctrl+ Shift+ Down(或向上,或向右或向左).这将带您进入工作表的限制或下一个填充的单元格.如果是后者,则可以按Shift+ Up(或向下,或向左或向右)以追溯到最后一个空白单元格.然后根据要求填写第2点和第3点.
您需要为每个不连续的空白单元组执行此操作.如果您希望能够快速自动填充不连续的空白单元组,那么是的,需要一个脚本.
var sheet = SpreadsheetApp.getActiveSheet();
var originRange = sheet.getRange("A1:B1");
var target = sheet.getRange("A2:B");
originRange.copyTo(target);
Run Code Online (Sandbox Code Playgroud)
这将自动填充/扩展公式在originRange下面的一切,如复制和粘贴.
小智 5
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);
Run Code Online (Sandbox Code Playgroud)
使用 getFormulasR1C1() 然后 setFormulasR1C1(formulas) 该函数模仿鼠标拖动公式
请注意,如果单元格不包含公式,则会显示错误。您需要通过清空单元格来解决此问题。
这是一个工作脚本,可将自定义菜单添加到您的Google表格。加载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();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
47297 次 |
| 最近记录: |