2011-10-31 31 views
1

我想從excel文件中讀取一些值。爲此我需要知道每列的最後一行。爲此,我使用find函數。但是,它給運行時錯誤。我正在使用C++。這裏是代碼如何在Excel編程中使用「查找」功能?

Excel::_ApplicationPtr app; 
::CoInitialize(NULL); 
app.CreateInstance("Excel.Application"); 
Excel::_WorkbookPtr wbk = app->Workbooks->Open("Algo_Sample.xlsx")); 
Excel::_WorksheetPtr sheet = wbk->Sheets->Item[1]; 
Excel::RangePtr range_Ptr = sheet->GetRange("A:A"); 
range_Ptr->Find("Subject","A1",Excel::xlValues,Excel::xlWhole,Excel::xlByRows,Excel::xlNext,false,false); 

我檢查與調試器,錯誤是在最後一行。這是Excel中的快照文件 enter image description here

我會很感激誰在這個問題上揭示光

注意的人:我使用Windows XP時,Visual Studio 2008,Office 2007中,C++。

+0

實際錯誤編號/郵件總是有益的。你正在尋找「sibject」,但你的專欄有「科目」。那是故意的嗎? –

+0

另外... .Find返回一個範圍引用(如果沒有找到該值,則返回Nothing/Null),並且你沒有設置任何返回值。 –

+0

@Tim哦,是的。但是在上述情況下,它也不應該給運行時錯誤。 – prabhakaran

回答

1

我不知道用C++的鏈接,但在Excel中,如果要指定一個特定列的最後使用的行,我用這個:

MyLastRowCount = Cells(Rows.Count, "A").End(xlUp).Row

這裏變量MyLastRowCount是分配列A中最後使用的單元格的行號。

它的作用是跳到A列中最後一個可用單元格(A65536代表xl03,或A1048576代表xl07/10),然後跳到第一個從下面佔用細胞。

問候,

羅伯特Ilbrink