我正在尝试从excel文件中读取一些值。为此我需要知道每列的最后一行。为此我使用find函数。但是,它给出了运行时错误。我正在使用c ++。这是代码
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文件的快照
我将非常感谢能够阐明这个问题的人
注意:我使用的是Windows XP,Visual Studio 2008,Office 2007,c ++。
答案 0 :(得分:1)
我不确定与C ++的链接,但在Excel中,如果要分配特定列的最后一行,我使用:
MyLastRowCount = Cells(Rows.Count, "A").End(xlUp).Row
此处变量MyLastRowCount
被分配了A列中最后一个使用过的单元格的行号。
它的作用是,跳到A列的最后一个可用单元格(A17536表示xl03,或A1048576表示xl07 / 10),然后从下面跳到第一个占用单元格。
此致
罗伯特·伊尔布林克答案 1 :(得分:0)
::Excel::RangePtr range = m_pObject->Cells->Find
(
pValue,
vtMissing,
::Excel::XlFindLookIn::xlValues,
::Excel::XlLookAt::xlPart,
::Excel::XlSearchOrder::xlByRows,
::Excel::XlSearchDirection::xlNext,
false,
false,
vtMissing
);