首页 > 解决方案 > C++ 搜索和拉取循环提前退出而没有错误代码

问题描述

我编写了一个程序来搜索某些 Excel 文件,提取一个数据单元格,然后填充到一个新的 Excel 工作表中。它可以在我的家用电脑和笔记本电脑上完美运行。但是,当我在工作计算机上运行它时,它只经过循环的第一次迭代,然后以代码 0 终止。

这是它在期间中断的循环(程序的其余部分完全运行):

void popNames() {
    cout << endl;
    int x = 0;
    try {
        Excel::_ApplicationPtr pXL; //Null Pointer
        pXL.CreateInstance(L"Excel.Application"); //Initialize Excel
        for (int h = 0; h < batches; h++) {
            cout << folderName[h] << endl;
            for (int i = 0; i < 4; i++) {
                pXL->Workbooks->Open(homeDir + _bstr_t(sDay.c_str()) + "\\" + folderName[h] + "\\" + fileName[x]);
                //Return pointer to worksheet and cells
                Excel::_WorksheetPtr pSheet = pXL->ActiveSheet;
                Excel::RangePtr pRange = pSheet->Cells;

                names.push_back(_bstr_t(pRange->Item[5][2])); //Populate names to vector
                pXL->PutDisplayAlerts(LOCALE_USER_DEFAULT, VARIANT_FALSE); //Turn off save alert
                pXL->Workbooks->Close(); //close workbook
                pXL->Quit();
                x++;
            }
        }
    }
    catch (_com_error & error) {
        cout << "Looks like there was an error: " << GetLastError() << endl;
    }
}

我已经尝试消除 try/catch 部分,但是当它遇到错误时它只会使程序崩溃。我很乐意提供任何其他信息。提前致谢。

标签: c++excelloopsvisual-c++

解决方案


推荐阅读