2016-04-29 2 views
2

В моей книге Excel иногда я получаю следующее сообщение об ошибке:VBA пользователя Тип не определен (только иногда)

vba user defined type not defined

Я знаю, что это обычно означает, что существует какой-то тип в коде Excel (VBA) не знает.

Странно, что код работает отлично, и это не происходит при компиляции.

Эта ошибка случайным образом возникает иногда во всех методах Application.Calculate family и on F9 keypress. Не всегда, но иногда.

Такое же поведение имеет сообщение об ошибке VBE с этим описанием:

visual basic module contains a syntax error

Когда я нажимаю отлаживать это приземляется на application.calculate(full) и если я продолжу код (с F5), он продолжает без ошибок.

EDIT: Иногда, когда я копирую эту функцию в другую книгу он получает пострадавший от ошибки типа UserDefined:

Option Explicit 

Public Function MergeAreaValue(rng As Range) As String 
On Error Resume Next 

If rng.MergeCells = True Then 
    MergeAreaValue = rng.MergeArea.Cells(1).Value2 
Else 
    MergeAreaValue = rng.Value2 
End If 

End Function 

Функция получает значение из объединенной области.

EDIT2: У меня ошибка, определяемая пользователем, всегда возникает при вычислении, но не прерывает ее. Книга все еще вычисляет нормальное ... сообщение просто раздражает.

+0

Оскорбительный тип, определенный в вашем собственном коде или в библиотеке? Если последний, вы проверили, включен ли он в Инструменты/Ссылки? – jsheeran

+0

хорошо, я должен отметить, что эта ошибка не указывает мне на объявление. (Как я думаю, он должен делать) В книге содержится довольно много кода. Но единственными (не стандартными) внешними ссылками являются Microsoft Scripting Runtime. и Microsoft XML – JoshK

+0

Есть ли у вас похожие переменные, которые являются публичными, где? –

ответ

0

Мне кажется, что "иногда" - это ключевое слово. Попробуйте декомпилировать файл. Например, с this.

Много лет я использую его без каких-либо проблем, но только с выгодами :) В Excel нет внутреннего декомпилятора в качестве доступа/декомпиляции. Не забудьте сделать резервную копию самостоятельно, а не только инструментом :) .

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