Добрый день.
Пытаюсь из VC6.0 отсортировать диапазон данных на странице Excel:
//....
using namespace Excel;
CoInitialize(NULL);
_ApplicationPtr pXL;
pXL.CreateInstance(L"Excel.Application");
WorkbooksPtr pBooks = pXL->GetWorkbooks();
_WorkbookPtr pBook = pBooks->Open((_bstr_t)filename,vtMissing,VARIANT_FALSE);
WorksheetsPtr pSheets = pBook->GetSheets();
_WorksheetPtr pSheet = pSheets->GetItem((long)1);
pSheet->Activate();
RangePtr pRangeSort;
LPDISPATCH lpdisp;
_variant_t var[3];
lpdisp = pSheet->GetRange((_bstr_t)"C3",(_bstr_t)"C10");
var[0].vt = VT_DISPATCH;
var[0].pdispVal = lpdisp;
lpdisp = pSheet->GetRange((_bstr_t)"D3",(_bstr_t)"D10");
var[1].vt = VT_DISPATCH;
var[1].pdispVal = lpdisp;
lpdisp = pSheet->GetRange((_bstr_t)"A3",(_bstr_t)"A10");
var[2].vt = VT_DISPATCH;
var[2].pdispVal = lpdisp;
pRangeSort = pSheet->GetRange((_bstr_t)"A3",(_bstr_t)"D10");
pRangeSort->Select();
pRangeSort->Sort(var[0], xlAscending,
var[1], vtMissing, xlAscending,
var[2], xlAscending,
xlNo,
(long)1,
VARIANT_FALSE,
xlSortColumns,
xlPinYin,
xlSortNormal,
xlSortNormal,
xlSortTextAsNumbers);
//.....
Вызов метода Sort некорректен, но причину понять не могу.
(Под дебагером на этой строке выскакивает эксепшн: (OLEAUT32.DLL):OxC0000005: Access Violation)
Может быть кто-нибудь делал похожее (задачка то тривиальная), ну или просто видит ясным взглядом, где я лопухнулся... подскажите пожалуйста)