Альтернатива элементу управления RefEdit в Excel, который можно использовать вне VBA. - PullRequest
4 голосов
/ 19 сентября 2008

Элемент управления 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, будут приветствоваться.

Ответы [ 2 ]

1 голос
/ 19 сентября 2008

Я столкнулся с этой заменой элемента управления RefEdit , когда искал обходные пути для ошибок RefEdit. Сторонний контроль не был для меня вариантом в то время, но он мог бы помочь вам.

0 голосов
/ 20 сентября 2008

Не уверен в своем вопросе: пытались ли вы импортировать RefEdit в Delphi?

Вы можете импортировать его как элемент управления ActiveX из RefEdit.dll, а затем удалить элемент управления TRefEdit в любой форме Delphi. и у вас есть тот же RefEdit, что и в ваших приложениях VBA.

Или это то, что вы пытались, и это не работает, потому что RefEdit нужен какой-то VBA woodoo ...?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...