2013-05-10 60 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 

你實際上會得到一個例外,試圖訪問一個不存在的行。您甚至可以使用否定索引來訪問進一步行的行。

相關問題