Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[34.206.1.144] |
|
Сообщ.
#1
,
|
|
|
Если в коде попытаться узнать размерность массива используя функции LBound() или UBound() то при непроинициализированном массиве возникнет ошибка:
Цитата Runtime error #9 Subscript out of range Однако существует возможность избежать этой ошибки используя следующую функцию: Private Declare Function GetMem4 Lib "msvbvm60" (ByVal pSrc As Long, ByVal pDst As Long) As Long Private Declare Function ArrPtr Lib "msvbvm60" Alias "VarPtr" (arr() As Any) As Long Function ArrayExists(ByVal APtr As Long) As Boolean Dim IsEx As Boolean GetMem4 APtr, VarPtr(IsEx) ArrayExists = IsEx <> 0 End Function а заюзать можно например так: Private Sub Form_Load() Dim TP() As String 'ДАННЫЙ КОД ПОКАЗАН ДЛЯ ПРИМЕРА И ОН ВСЕГДА БУДЕТ ВОЗВРАЩАТЬ [False] MsgBox ArrayExists(ArrPtr(TP)) End Sub |