Немодальный MsgBox, перехват ошибок, поиск - PullRequest
3 голосов
/ 18 февраля 2009

У меня есть подпрограмма, которая ищет вхождение строки в другой книге. Я пытаюсь получить сообщение об ошибке, если строка не может быть найдена (это, скорее всего, из-за орфографических ошибок), как vbModeless, и позволяет пользователю нажать на ячейку в искомом листе с правильным значением , Затем я хотел бы возобновить поиск с новым значением.

В данный момент я застрял в том, чтобы сделать мой простой MsgBox немодальным. Кто-нибудь может помочь? Пока что у меня (упрощенно):

With ...
    On Error GoTo UserSelect
    celladdress = .Range("a1:bb100").Find("searchstring").Address

И мой ярлык с ошибкой:

UserSelect:
    MsgBox("Select the cell with the correct spelling") vbModeless
    newstring = ActiveCell.Value
    searchstring = newstring
    Resume

Я думаю, что безмодельный MsgBox доставляет мне горе.

Ответы [ 2 ]

3 голосов
/ 18 февраля 2009

Я не верю, что вы можете использовать vbModeless с msgbox. Это для использования с методом Show пользовательской формы.

Что вам, вероятно, нужно сделать, - это создать пользовательскую форму с элементом управления refedit и кнопкой на ней. Затем они могут выбрать ячейку с контролем reedit. Когда пользователь нажимает кнопку, установите открытую переменную в форме с выбранной ссылкой на ячейку.

Затем вам нужно использовать «.Show vbModal» в пользовательской форме и считать ячейку, выбранную в публичной переменной формы.

Edit:

На самом деле вам не нужна общедоступная переменная, так как элемент управления reedit в любом случае должен быть публичной собственностью формы.

0 голосов
/ 19 февраля 2009

Я не уверен на 100% в требованиях здесь. Имеется строка поиска dgo и лист с ячейками, содержащими bird , cat и dog . Вы хотите, чтобы пользователь:

(a) отредактируйте ячейку, содержащую dog и измените ее на dgo вместо

Это будет использовать модальную форму и элемент управления RefEdit, обозначенные andynormancx. Как и MsgBox, модальная форма приостанавливает макрос до тех пор, пока форма не закроется

(b) позволяет пользователю щелкнуть по ячейке, содержащей собака , а затем повторно запустить поиск с собака в качестве условия поиска

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

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