Проблема с формой ввода данных

Программирование на Visual Basic for Applications
zIP
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 02.11.2006 (Чт) 9:17

Проблема с формой ввода данных

Сообщение zIP » 04.11.2006 (Сб) 10:34

Постоянный глюк со стандартной формой ввода данных.

Действия.

1) Создаю таблицу.
2) Делаю список с названиями полей
3) Записываю макрос вызова формы ввода данных.
3.1) Выделяю диапазон ячеек в списке
3.2) Вызываю форму ввода данных
3.3) Закрываю форму.

Так вот, если на странице находиться только одна таблица, то проблем нет. Но стоит сделать еще таблицу, то привызове формы через макрос выскакивает 1024 ошибка.
Метеод ShowDataForm из класса WorkSheet завершен не верно.

KL
Microsoft MVP
 
Сообщения: 483
Зарегистрирован: 30.10.2005 (Вс) 0:31
Откуда: Madrid

Сообщение KL » 04.11.2006 (Сб) 17:45

Это не глюк - это по дизайну:

1) метеод ShowDataForm вызываемый из VBA по умолчанию всегда ищет таблицу, первая ячейка которой находится в ранге [A1:B2], а если таковой не находит, дает ошибку.

2) [в англ. версии Excel] можно создать имя Database для ранга с таблицей (меню Вставка-Имя-Присвоить или динамически через код) и тогда метеод ShowDataForm будет по умолчанию искать Database независимо от того, где находится первая ячейка

3) Может так случится, что в русск. версии Excel имя Database потребуется заменить русск. эквивалентом (в испанской версии точно нужно), а может быть и нет. В любом случае вариант "база данных" отпадает, т.к. имена не допускают пробелов. Можешь попробовать: "база_данных", "базаданных", "база.данных" и т.д.

4) Если файл будет открываться в Excel на разных языках, возможно придется создавать таблицу соответствий версий и имен.

5) попробуй след. код с учетом пункта 2:

Код: Выделить всё
Sub test()
    Dim strName As String
   
    Select Case Application.International(xlCountryCode)
    Case 1: strName = "database"
    Case 7: strName = "база_данных"
    End Select
   
    ThisWorkbook.Names.Add strName, Selection.CurrentRegion
    ActiveSheet.ShowDataForm
End Sub
Привет,
KL

zIP
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 02.11.2006 (Чт) 9:17

Сообщение zIP » 04.11.2006 (Сб) 18:08

Спасибо. Помогло.

Есть вопрос(сейчас проверить не могу а делать надо).

Будет ли это работать в других версиях excel? 97-2002

Естетсвенно сохраню в совместимом формате.

KL
Microsoft MVP
 
Сообщения: 483
Зарегистрирован: 30.10.2005 (Вс) 0:31
Откуда: Madrid

Сообщение KL » 05.11.2006 (Вс) 0:33

zIP писал(а):...сейчас проверить не могу....


Я тоже :-)

zIP писал(а):Будет ли это работать в других версиях excel? 97-2002


Для 2000+ работает точно. Трюк старый - не вижу почему бы он не стал работать в Excel97
Привет,
KL


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 75

    TopList