为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 Excel Javascript Addins 计算所有非空白单元格?

如何使用 Excel Javascript Addins 计算所有非空白单元格?

噜噜哒 2021-09-04 15:01:33
我正在创建一个 Office js 插件,它将表 1 底部的数据插入到表 2 中,但我找不到执行此操作的方法。我试过使用,Excel.Functions.countA()但我似乎无法从中获得NaN以外的值。这是我正在使用的代码:async function run() {  try {    await Excel.run(async context => {      var sheet1Name = "Sheet1";      var sheet1RangeAddress = "B:B";      var sheet2Name = "Sheet2";      var sheet2RangeAddress = "A2:P2";      var sheet2Range = context.workbook.worksheets.getItem(sheet2Name).getRange(sheet2RangeAddress);      sheet2Range.insert("Down");      var sheet1CellAddress = context.workbook.worksheets.getItem(sheet1Name).getRange(sheet1RangeAddress).load("address");      var sheet1RangeLength = Number(context.workbook.functions.countA(sheet1CellAddress));      var sheet1LastCell = context.workbook.worksheets.getItem(sheet1Name).getRangeByIndexes(3,1,sheet1RangeLength,1).getLastCell();      var sheet2Cell = context.workbook.worksheets.getItem(sheet2Name).getRange("A2");      sheet2Cell.values = [[ context.workbook.worksheets.getItem(sheet2Name).getRange("A2").copyFrom(sheet1LastCell) ]]      await context.sync();    });  } catch (error) {    console.error(error);  }}我在 Microsoft 的文档或在线工作示例中找不到任何有用的信息。有谁知道我做错了什么?
查看完整描述

1 回答

?
月关宝盒

TA贡献1772条经验 获得超5个赞

代码中的这一行看起来有问题:

 var sheet1RangeLength = Number(context.workbook.functions.countA(sheet1CellAddress));

Functions.countA方法返回一个Excel.FunctionResult对象,我认为该对象不能转换为数字。函数返回的计数将在value返回对象的属性中。您需要加载该值才能读取它。试试这两行作为替代:

 var sheet1RangeLength = context.workbook.functions.countA(sheet1CellAddress).load("value"); await context.sync();

顺便说一句,以下行返回的是 Range 对象,而不是地址。没关系,因为 countA 接受 Range 对象参数,但您的变量名称具有误导性。另外,我认为load("address")最后没有任何用途。

var sheet1CellAddress = context.workbook.worksheets.getItem(sheet1Name).getRange(sheet1RangeAddress).load("address");

如果您还没有,请参阅这篇文章:调用内置 Excel 工作表函数


查看完整回答
反对 回复 2021-09-04
  • 1 回答
  • 0 关注
  • 195 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信