Microsoft Excel

Herbers Excel/VBA-Archiv

VBA: find und instr oder iserror kombinieren

Betrifft: VBA: find und instr oder iserror kombinieren von: tomcatoggo
Geschrieben am: 13.11.2014 15:49:45

Hallo!

da ich jetzt etliche Stunden an diesem Problem hänge und einfach gar nicht verstehe, warum so eine (so dachte ich das zumindest) super simple Sache sich nicht lösen lässt, frage ich jetzt mal hier nach:

Ich denke ich brauche hier nix extra hochladen... hier die Beschreibung:
A1 Fe2O3
A2 C
A3 Fe
A4 O
A5 H

Code:

Function AnzahlAtome(Substance As String, Element As String) As Variant

Dim LenElement As Integer
Dim DimFind As Double

LenElement = Len(Element)
If InStr(1, Substance, Element, vbTextCompare) = 0 Then
AnzahlAtome = 0
Else
AnzahlAtome = LenElement '(das ist nur zum Test hier)
End If

End Function

So wie die Funktion jetzt da steht, spuckt sie sauber 0,2,1,0 aus (von A2-A5) wenn ich als erste Variable die Zelle A1 und als zweite Variable A2,3,4,5) setze.

Füge ich zwischen "end if" und "End Function" dann noch folgende Zeile ein (sonst keinerlei Veränderung):
DimFind = WorksheetFunction.Find(Element, Substance, 1)
bekomme ich für A2 und A5 den "#Wert!"-Fehler. Das passiert auch, wenn ich die Zeile irgendwo sonst einfüge.

Die Frage daher: warum zum G.... zerschießt dieser Ausdruck teilweise die Funktion obwohl er (also die Variable) ja nirgends verwendet wird?

Danke im Voraus!

  

Betrifft: doppelt owT von: Rudi Maintaire
Geschrieben am: 13.11.2014 15:54:09




 

Beiträge aus den Excel-Beispielen zum Thema "VBA: find und instr oder iserror kombinieren"