Jump to content

Windows Scripting Host VBA - Rückgabewerte von Funktionen


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Weis jemand wie man mit VBS einen funktionierenden Rückgabewert einer Funktion hin bekommt?

 

Dazu folgendes Beispiel:

 

Sub holeNummer(Ordner, Dateiname)
dim f1,fc1,fl1,hilfNr,nummer
set f1 = wshfilesystem.GetFolder(Ordner)
set fc1 = f1.files
nummer = "000"
for each fl1 in fc1
	if fl1.name <> "" then
		if lcase(Left(fl1.name,Len(fl1.name)-4)) = lcase(Left(Dateiname,Len(Dateiname)-4)) then
			hilfNr = Right(fl1.name,3)
		end if
		if nummer < hilfNr then
			nummer = hilfNr
		end if
	end if
next
if nummer < 10 then
	if nummer = 9 then
		nummer = nummer + 1
		nummer = "0" & nummer
	else
		nummer = nummer + 1
		nummer = "00" & nummer
	end if
end if
if nummer >= 10 and nummer < 100 then
	if nummer = 99 then
		nummer = nummer + 1
	else
		nummer = nummer + 1
		nummer = "0" & nummer
	end if
end if
if nummer >= 100 then
	nummer = nummer + 1
end if
holeNummer = nummer
end sub

 

Die abgebildete Funktion ist dazu gedacht das als Parameter übergebene Verzeichnis nach dem übergebenen Dateinamen zu durchsuchen und die nächste fortlaufende Nummer zu bestimmen also wenn z.B. die folgenden Dateien bereits im angegebenen Verzeichnis existieren:

 

Datei.001

Datei.002

Datei.003

.

dann wäre die nächste Nummer demnach: 004

 

Und diese neue Nummer soll dann als Rückgabewert zurückgegeben werden.

Wenn ich jetzt jedoch im Hauptprogramm die Funktion z.B. mittels

 

neuNummer = holeNummer("C:\Test","test.bak")

 

aufrufe stoppt das Programm genau an dieser Stelle, also dort wo die Funktion im Hauptprogramm aufgerufen wird, und dann erhalte ich die folgende Fehlermeldung:

 

Quelle: Laufzeitfehler in Microsoft VBScript; Fehler: Typen unverträglich: 'holeNummer'; Code: 800A000D

 

Hat jemand eine Idee woran das eventuell liegen könnte?

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...