Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
956to960
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
956to960
956to960
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Funktion mit instr() anweisung

Funktion mit instr() anweisung
08.03.2008 11:27:16
Claas
Hallo zusammen!
Ich habe ein kleines Problem mit einer Funktion, die mir einen boolschen Wert zurück geben soll. Mit der Funktion soll geprüft werden, ob die letzten beiden Zeichen eins Dateinamens "_t" sind. Dabei wird ausgeschlossen, dass dieser Ausdruck vorher vorkommt.

Function Test(Dateiname) As Boolean
If InStr(Dateiname, "_t") = Len(Dateiname) - 5 Then
Test = True
Exit Function
Else
Test = False
End If
End Function


Und zwar bekomme ich immer den Wert "False" ausgegeben. Ich habe auch schon versucht, statt des len() Befehls eine Zahl (natürlich die richtige) einzusetzen, komme damit aber auch nicht weiter. Setze ich statt des instr() Befehls eine Zahl ein, bekomme ich ein "True" zurückgegebebn.
Der Dateiname hat übrigens das Format [Bezeichnung]_t.txt, ist also vom Typ string.
Falls es alternative Lösungen für das Problem gibt, bin ich dafür natürlich auch offen.

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Funktion mit instr() anweisung
08.03.2008 11:36:00
ransi
Hallo
Warum den Klimmzug mit instr()?
Versuch mal so:
Option Explicit


Public Sub aufruf()
MsgBox Test("irgendwas")
MsgBox Test("abc_t")
End Sub

Function Test(Dateiname) As Boolean
Test = Right(Dateiname, 2) = "_t"
End Function

ransi

Anzeige
AW: Funktion mit instr() anweisung
08.03.2008 12:11:42
Claas
Danke schonmal für die Antworten.
leider funtzt es immer noch nicht. Der Punkt von der Endung des Dateinamens scheint das Problem zu sein. Der Dateiname hat die Länge und die Form: abcd_2.5mm_t.txt
Lasse ich das .txt weg scheint es zu funktionieren.
Kann mir eventuell noch jemand einen befehl verraten, der das bewerkstelligt?
Aber ansonsten Danke für die schnelle Hilfe!

AW: Funktion mit instr() anweisung
08.03.2008 13:09:50
Nepumuk
Hallo Claas,
na dann löschen wir die Endung einfach.
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Public Sub aufruf()
    MsgBox Test("abcd_2.5mm_XYZ.txt")
    MsgBox Test("abcd_2.5mm_t.txt")
End Sub

Function Test(Dateiname) As Boolean
    Test = Right$(Replace(LCase$(Dateiname), ".txt", ""), 2) = "_t"
End Function

Gruß
Nepumuk

Anzeige
AW: Funktion mit instr() anweisung
08.03.2008 13:13:00
Claas
Hat wunderbar funktioniert! Habe festgestellt, dass es auch möglich ist die Lösung von ransi zu verwenden, wenn man die komplette Endung (mit .txt) eingibt.
Vielen Dank und bis zum Nächsten mal :-)

AW: Funktion mit instr() anweisung
08.03.2008 11:40:00
ingUR
Hallo, Claas,
mit Deiner InStr-Anweisung bekommst Du die Position des Unterstrichs geliefert, wenn diesr in Kombination mit dem nachfolgendem kleine Buchstaben t auftritt. Insofern nehme ich an, dass Du das Zeichen sechs Zeichen vor dem Ende abfragen möchtest und nicht etwa das fünfte Zeichen.
Eine ander Möglichkeit die mir einfällt, wäre die, dass zwischen Groß- und Kleinschreibung in Deinem Befehlsaufbau unterschieden wird.
Ansonsten zeige einfach, welchen Inhalt der String Dateiname bei dem vermeintlich fehlerhaften Verhalten hat.
Gruß,
Uwe
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige