2016-04-29 19 views
2

In meiner Excel-Arbeitsmappe manchmal bekomme ich folgende Fehlermeldung:VBA benutzerdefinierter Typ nicht definiert (nur manchmal)

vba user defined type not defined

Ich weiß, dass dies in der Regel bedeutet, dass es irgendeine Art zeichnet sich in dem Code (VBA) weiß es nicht.

Die seltsame Sache ist, dass der Code völlig in Ordnung ist und dies nicht während des Kompilierens passiert.

Dieser Fehler tritt gelegentlich bei allen Methoden der Application.Calculate-Familie und F9-Tastendruck zufällig auf. Nicht immer aber manchmal.

Das gleiche Verhalten hat eine VBE-Fehlermeldung mit dieser Beschreibung:

visual basic module contains a syntax error

Wenn ich Debug klicken Sie auf application.calculate(full) landen und wenn ich den Code (mit F5) weiter geht es ohne Fehler.

EDIT: Manchmal, wenn ich kopieren Sie diese Funktion auf eine andere Arbeitsmappe sie vom Userdefined Typ Fehler betroffen wird:

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 

Die Funktion den Wert aus einem fusionierten Bereich bekommt.

EDIT2: Ich habe den benutzerdefinierten Typ Fehler immer bei der Berechnung auftritt, aber es nicht brechen. Die Arbeitsmappe berechnet immernoch normal .. die Nachricht ist nur nervig.

+0

Ist der betreffende Typ in Ihrem eigenen Code oder in einer Bibliothek definiert? Wenn letzteres, haben Sie überprüft, ob es in Tools/Referenzen enthalten ist? – jsheeran

+0

Nun ich sollte beachten, dass dieser Fehler mich nicht auf eine Erklärung verweist. (Wie ich denke, es sollte tun) Das Arbeitsbuch enthält ziemlich viel Code. Die einzigen (nicht standardmäßigen) externen Referenzen sind Microsoft Scripting Runtime. und Microsoft XML – JoshK

+0

Haben Sie zufällig ähnliche Variablen, die sonst wo öffentlich sind? –

Antwort

0

Es scheint mir, dass "manchmal" das Schlüsselwort ist. Versuchen Sie, die Datei zu dekompilieren. Zum Beispiel mit this.

Viele Jahre benutze ich es ohne irgendwelche Probleme, aber nur mit Vorteilen :) Excel haben keinen internen Decompiler als Access/dekompilieren. Vergessen Sie nicht, sich selbst zu sichern, nicht nur das Werkzeug :) .

Verwandte Themen