//激活区域
let UsedRange = API.ActiveSheet.UsedRange;
//首列,末列,首行,末行
let firstCol = UsedRange.Column;
let lastCol = UsedRange.ColumnEnd;
let firstRow = UsedRange.Row;
let lastRow = UsedRange.RowEnd;
//激活区域的范围,用于调试
console.log(
'firstCol: ' + firstCol,
'lastCol: ' + lastCol,
'firstRow: ' + firstRow,
'lastRow: ' + lastRow
)
//遍历每一列
for (let i = firstCol; i <= lastCol; i++) {
//求和变量
var sum = 0;
//当前列
let col = API.ActiveSheet.Columns(i);
//遍历每一行,对该列的数值进行求和
for (let j = firstRow + 1; j <= lastRow; j++) {
//如果列数是6-12
if (i >= 6 && i <= 12) {
//当前单元格
let row = col.Rows(j);
//字符串变量
let str = row.Text;
//第二个for循环,避免出错的判断
if (str) {
let num = parseInt(str.match(/\d+/)[0]);
sum += num;
} else {
sum += 0;
}
}
}
//第一个for循环的判断
if (i >= 6 && i <= 12) {
console.log([i] + ' ' + sum);//输出调试
(lastRow + 1).Value = sum; //这一行给单元格赋值无法执行
}
}
问题描述:有一个固定列数,动态行数的工作表,需要对其中6到12列的每一列分别进行求和(Sum)并将计算结果放到每一列的最后一行(可以理解为lastRow + 1),目前的结果是求和计算正常,但是给最后一行(lastRow + 1)的单元格赋值无法执行,多次尝试没有找到解决方案,请技术支持帮忙看看,谢谢!