Я пытаюсь установить столбец Excel на ширину автофитов с помощью Com Automation. Я получаю нарушение доступа при вызове. Я знаю, что диапазон, который указывает на столбец, в порядке, потому что я могу использовать его для изменения цвета, например. < /P>
Это мой код < /p>
DISPID dispid1;
dispid1 = GetDispID(pWorksheet, L"Columns");
VARIANT arg;
arg.vt = VT_I4;
arg.intVal = col;
DISPPARAMS dp = {
&arg, NULL, 1, 0
};
VariantInit(&vResult);
hr = pWorksheet->Invoke(dispid1, IID_NULL, LOCALE_SYSTEM_DEFAULT,
DISPATCH_PROPERTYGET, &dp, &vResult, NULL, NULL);
if (FAILED(hr)) {
ShowMessage("fail");
return;
}
pRange = vResult.pdispVal;
if (!pRange) {
return;
}
DISPID dispid2;
OLECHAR* szAutoFit = L"AutoFit";
hr = pRange->GetIDsOfNames(IID_NULL, &szAutoFit, 1, LOCALE_USER_DEFAULT, &dispid2);
if (FAILED(hr)) {
ShowMessage("fail");
return;
}
// the below call displays an access violation
hr = pRange->Invoke(dispid2, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, NULL, NULL,
NULL, NULL);
if (FAILED(hr)) {
ShowMessage("fail");
return;
}
Подробнее здесь: https://stackoverflow.com/questions/795 ... tion-fails
Установка столбца Excel для автофита с использованием C ++ и Com Automation не сбои ⇐ C++
Программы на C++. Форум разработчиков
1746174605
Anonymous
Я пытаюсь установить столбец Excel на ширину автофитов с помощью Com Automation. Я получаю нарушение доступа при вызове. Я знаю, что диапазон, который указывает на столбец, в порядке, потому что я могу использовать его для изменения цвета, например. < /P>
Это мой код < /p>
DISPID dispid1;
dispid1 = GetDispID(pWorksheet, L"Columns");
VARIANT arg;
arg.vt = VT_I4;
arg.intVal = col;
DISPPARAMS dp = {
&arg, NULL, 1, 0
};
VariantInit(&vResult);
hr = pWorksheet->Invoke(dispid1, IID_NULL, LOCALE_SYSTEM_DEFAULT,
DISPATCH_PROPERTYGET, &dp, &vResult, NULL, NULL);
if (FAILED(hr)) {
ShowMessage("fail");
return;
}
pRange = vResult.pdispVal;
if (!pRange) {
return;
}
DISPID dispid2;
OLECHAR* szAutoFit = L"AutoFit";
hr = pRange->GetIDsOfNames(IID_NULL, &szAutoFit, 1, LOCALE_USER_DEFAULT, &dispid2);
if (FAILED(hr)) {
ShowMessage("fail");
return;
}
// the below call displays an access violation
hr = pRange->Invoke(dispid2, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, NULL, NULL,
NULL, NULL);
if (FAILED(hr)) {
ShowMessage("fail");
return;
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79599674/setting-an-excel-column-to-autofit-using-c-and-com-automation-fails[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия