2013-05-10 58 views
1

我使用Office开发工具在2012年11月Range.address不匹配range.cell [0]解决

发布我的工作表中引用的Visual Studio 2012开发VSTO插件为Excel 2013我试图访问一个范围内的单元格的值。这应该是一个简单的任务,但由于某种原因,我试图访问的单元格实际上比范围高一行。我不确定是什么导致了这一点,或者如果我以错误的方式来解决这个问题。下面的简单例子解释了我看到的行为。

var dataEntrySheet = (Worksheet)Globals.ThisAddIn.Application.Worksheets["Data Entry"]; 
var rangeAddress = dataEntrySheet.Range["A2"].Address 
var cellAddress = dataEntrySheet.Range["A2"].Cells[0].Address 

以上的结果是:

rangeAddress = “$ A $ 2”

cellAddress = “$ A $ 1”

有谁知道这是为什么发生了什么?

回答

2

这是因为指数在这里:

Cells[0] 

当在Excel中访问的行和列的索引以1开始。所以,其实0变为一点了。如果你会这样做:

var cellAddress = dataEntrySheet.Range["A1"].Cells[0].Address 

你实际上会得到一个例外,试图访问一个不存在的行。您甚至可以使用否定索引来访问进一步行的行。

相关问题