如何循环遍历列以拖拽公式
How to loop through columns to drag down formulas?
我有一个由行1-最后一行定义的范围,并且我试图做以下操作:
- 查看每列的最后一行(它们应该都是相同的),如果单元格是空的,从第1行向下拖动公式,直到该列的最后一行(例如,如果我在A列,我的最后一行是第10行,我将评估A10是否为空,如果是,我将把公式从A1一路拖到A10)
- 循环遍历A-M列并重复此过程
我有一个艰难的时间,因为我一直得到一个"准备执行"的消息,而调试,它从来没有运行过。
function dragformulas() {
var sh2=SpreadsheetApp
.getActiveSpreadsheet()
.getSheetByName("Inputs for Web App")
var lastrow = sh2.getLastRow();
for (var j=0; j < 14 ; j+1) {
var emptyrange= sh2.getRange(lastrow, j+1, 1, 1);
if (emptyrange.isBlank()) {
var copyformulacell = sh2.getRange(1, j+1, 1, 1);
var dragrange= sh2.getRange(1, j+1, lastrow - 1, 1);
var getformula = copyformulacell.getFormulas();
dragrange.setFormula(getformula);
}
}
}
我简化了代码,现在它可以工作了。
function myFunction() {
var sh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Looping columns");
var lastrow = sh.getLastRow();
var numrows = lastrow;
var lastcol = sh.getLastColumn();
var numcols = lastcol;
var range = sh.getRange(1,1,numrows,numcols);
sh.setActiveRange(range);
return propagateFormulae(numrows, numcols, sh);
}
function propagateFormulae(rows, cols){
for(var i=1;i<=cols;i++){
for(var j=2;j<=rows;j++){
var sh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Looping columns");
if(sh.getRange(j,i).getValue().length == 0)
sh.getRange(j-1,i).copyTo(sh.getRange(j,i));
else{
j=rows;
}
}
}
}
相关文章:
- 循环遍历以数组为值的Javascript对象
- 循环遍历包含另一个表单的表单
- JS.循环遍历多维数组,以计数元素在每列中的出现次数
- js循环遍历单击的元素子节点
- 根据PHP中数组的长度在Google Maps API中循环遍历标记
- 循环遍历元素jquery选择器
- 无法在javascript中循环遍历对象数组
- 在循环遍历对象 HTMLDivElement 时,应用 ChileNode 样式 zindex 在 firefox 和
- 如何在DataTablesjQuery中循环遍历所有行
- 使用函数for循环遍历对象以更改值,然后返回结果
- 遍历 jQuery:循环遍历子项
- 循环遍历平行层
- 循环遍历 jqGrid 中的 colModels 名称
- jQuery 插件不会循环遍历匹配的项目
- 循环遍历 JSON 对象
- 一次循环遍历一组
- 循环遍历表行,获取总计和更新行
- 循环遍历 DOM 元素时,是否有 for 循环的替代方法
- 如何缓慢地遍历 jquery 循环,并每次替换占位符文本
- 我可以遍历 for 循环以创建更多 JavaScript 吗?