Это не глюк - это по дизайну:
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