1

我一直在努力使变量等于数组中特定元素的值,我希望有人能提出建议。在这种情况下,我试图获取单元格 E5 中的值

  async function main(context: Excel.RequestContext){
   let workbook = context.workbook;
   let worksheets = workbook.worksheets;
   let sheet1 = worksheets.getItem("Sheet1");
   var currentMonth = 1 

   var months = sheet1.getRange("E5:AD5");
   months.load("values")
   await context.sync();
   monthValue = months[1][currentMonth].value
   console.log(monthValue.values)
}

任何帮助将不胜感激!

4

1 回答 1

1

tl;博士

更改months[1][currentMonth].valuemonths.values[0][currentMonth]

细节

这里有两个问题。首先是要访问加载的值,您需要months.values如下所示编写:https ://docs.microsoft.com/en-us/office/dev/add-ins/excel/excel-add-ins-ranges#获取值文本或公式

第二个是使用getRange("E5:AD5"),您将获得单行值。months.values因此,将以包含包含值的数组 (cols) 的数组 (rows) 的形式保存值。就像是:

[
  ["cell E5", "cell F5", "cell G5", ...]
]

所以一行,很多列。

但是通过这样做months[1],您正在尝试访问该集合的第二行。第一行是months[0].

列也是如此,第一列是 index 0。所以你的集合的第一个单元格的值是months.values[0][0]

于 2020-06-12T15:52:07.477 回答