Я работаю над диалогом импорта (из Excel), который использует автоматизацию, чтобы позволить пользователю выбирать диапазоны ячеек для импорта. Когда выбран диапазон, я использую приемник событий, чтобы поймать событие и высветить первую строку и первую колонку. Мне нужно иметь возможность отключить первую строку и столбец предыдущего выбора. Я не думаю, что это безопасно, чтобы просто получить выбранный диапазон в момент изменения выбора, и помните, такие как (psuedocode для краткости и ясности):Автоматизация Excel. Нужно получить предыдущий выбор при изменении выбора
OnSelectionChange()
{
if (m_PrevSelection)
UnHilite(m_PrevSelection);
HiliteCurrentSelection();
GetSelectedRange(m_PrevSelection);
}
Я предполагаю, что только держась за что диапазон (полученный из _Application :: Selection), не выпуская его, вызовет всевозможные проблемы (но, возможно, я ошибаюсь). Я не нашел способ скопировать диапазон (IRange Copy просто копирует содержимое ячеек из одного диапазона в другой).
Я думаю, я мог бы принять адреса ячейки диапазона и сохранить их, а затем воссоздать диапазон от того, когда мне нужно сделать немытое, но мне кажется, что это так часто возникает, мне интересно, более элегантное решение.
Большое спасибо. Я подхожу к нему так. – Steve