2014-01-25 4 views
0

Этот вопрос связан с VB в Excel 2003. Моя книга excel ссылается на макрос VB. И этот макрос имеет несколько пользовательских форм. Я добавил новый флажок в одной из форм. Проблема здесь, когда я пытаюсь получить доступ к новому флажку через1004 Ошибка выполнения при обращении к флажку

ActiveWorkSheet.DialogSheet("Options").EdBox("CheckBox1").Text 

он бросает мне 1004 ошибку времени выполнения. Моя голова крутится, чтобы понять, почему я не могу найти основную причину. Есть уже существующие флажки, которые доступны без каких-либо проблем. Любая помощь очень ценится.

Нужно ли мне устанавливать какие-либо свойства для нового CheckBox, прежде чем я получу доступ к нему из кода?

+0

Является ли CheckBox в форме пользователя на листе Excel? И похоже, вы просто пытаетесь отредактировать то, что текст для него правильно? –

+0

Alex D, пользовательская форма находится в определении макроса, и мой excel ссылается на этот макрос. Я использовал имя «CheckBox1» по умолчанию, чтобы просто получить доступ к нему из моего кода VB, чтобы узнать, работает ли он. Но это не так. –

+0

Действительно ли вы используете DialogSheet или пользовательскую форму? Не видели DialogSheet со старых Excel 95 дней, хотя я знаю, что они все еще поддерживаются. –

ответ

1

Вы сказали, что

Все существующие CheckBoxes доступны через метод .EdBox класса DialogSheet

так логически ошибка 1004 обусловлена ​​как нет никакой .DialogSheet("Options") или нет .EdBox("CheckBox1") - наиболее вероятно, последний.

В Немедленных панелях входит:

?ActiveWorksheet.DialogSheet("Options").EdBox("CheckBox1").Name 

и посмотреть, если он появляется сообщение об ошибке. Если это произойдет, вам нужно будет найти фактическое имя добавленного вами CheckBox, посмотрев его свойства. Учитывая, что в форме есть другие CheckBoxes, есть вероятность, что тот, который вы добавили, не будет называться CheckBox1.

Смежные вопросы