Элемент управления RefEdit, входящий в состав VBA, немного глючит, но он полезен для создания формы, когда вы хотите, чтобы люди указывали один или несколько диапазонов ячеек (т. Е. Excel.Range
объекты).
Основная проблема заключается в том, что вы можете использовать элемент управления RefEdit только в пользовательской форме VBA ( Microsoft утверждает, что , и мои тесты подтверждают это тоже). Я делаю надстройку для Excel, используя Delphi , и ищу альтернативу элементу управления RefEdit .
Excel.Application.InputBox Type:=8
- это один из альтернативных способов выбора диапазона ячеек, но он не очень удобен для пользователя, когда необходимо, чтобы люди выбирали несколько диапазонов ячеек в одной форме. Наилучшая реальная альтернатива, которую я имею на данный момент, - это вызвать форму VBA из моей надстройки Delphi, но это далеко от идеала.
Так что в идеале я мог бы сделать с заменой на RefEdit , которую я могу использовать в форме Delphi. Если он есть, его нелегко найти (я довольно тяжело искал, и мне не удалось найти замену RefEdit для Delphi, VB6 или .NET).
В случае неудачной замены я мог бы попытаться собрать воедино свою собственную альтернативу, но я подозреваю, что будет трудно, если не невозможно, создать такую, которая будет работать так же хорошо, как RefEdit. RefEdit позволяет вам «выбирать» ячейки, фактически не выделяя их: он использует марширующих муравьев вокруг выбранных ячеек вместо их выделения и изменения Excel.Application.Selection
. Я не знаю, как это сделать, манипулируя объектной моделью Excel через VBA, Delphi или что-то еще.
Любые советы, хитрости, хаки или, если мне действительно повезет, указатели на добавленные замены RefEdit, будут приветствоваться.