Как использовать функцию «Найти» в программировании Excel? - PullRequest
1 голос
/ 31 октября 2011

Я пытаюсь прочитать некоторые значения из файла 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, офис 2007, c ++.

Ответы [ 2 ]

1 голос
/ 04 ноября 2011

Я не уверен насчет связи с C ++, но в Excel, если вы хотите назначить последнюю использованную строку определенного столбца, я использую это:

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

Здесь переменной MyLastRowCount присваивается номер строки последней использованной ячейки в столбце A.

Для этого перейдите к последней доступной ячейке (A65536 для xl03 или A1048576 для xl07 / 10) в столбце A, а затем прыгните на первую занятую ячейку снизу.

С уважением,

Роберт Ильбринк

0 голосов
/ 25 августа 2018
    ::Excel::RangePtr range = m_pObject->Cells->Find
    (
        pValue,
        vtMissing,
        ::Excel::XlFindLookIn::xlValues,
        ::Excel::XlLookAt::xlPart,
        ::Excel::XlSearchOrder::xlByRows,
        ::Excel::XlSearchDirection::xlNext,
        false,
        false,
        vtMissing
    );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...