Thema Datum  Von Nutzer Rating
Antwort
Rot Eigene Funktion mit FileSystemObject
13.09.2017 12:40:55 Roman
NotSolved
13.09.2017 12:43:28 Gast473
NotSolved
13.09.2017 13:00:39 Gast88200
NotSolved
13.09.2017 14:23:07 Gast26715
NotSolved
Rot So
13.09.2017 19:47:35 Gast20905
NotSolved
13.09.2017 19:48:36 Gast20905
NotSolved
19.09.2017 15:57:56 Gast26558
NotSolved

Ansicht des Beitrags:
Von:
Roman
Datum:
13.09.2017 12:40:55
Views:
1052
Rating: Antwort:
  Ja
Thema:
Eigene Funktion mit FileSystemObject
Guten Tag, ich habe ein Problem beim erstellen einer eigenen Funktion in VBA. Der Einfangsparameter meiner eigenen Funktion is vom Typ eine Datei. Ich bekomme nicht raus, wie ich im Konstruktor der Funktion den Typ des Eingangsparameters richtig angebe. Der Ausschnitt aus dem Code: For monatstag_int = 1 To 31 Dim myObj As Object Set myObj = CreateObject("Scripting.FileSystemObject") Dim verzeichnisRohdaten As Object Set verzeichnisRohdaten = myObj.GetFolder(verzeichnisDerRohdaten) For Each file In verzeichnisRohdaten.Files Dim dateiname As String dateiname = file.Name Dim tagesKennung_string As String tagesKennung_string = Mid(dateiname, 7, 2) Dim tagesKennung_int As Integer tagesKennung_int = CInt(tagesKennung_string) Dim tagesKennung_stringOhneNull As Integer tagesKennung_stringOhneNull = CStr(tagesKennung_int) If tagesKennung_int = monatstag_int Then ' Öffnen der aktuellen Rohdaten-Datei Workbooks.Open (file) ' Markieren und löschen der gesamten Spalte E ' Spalte E ist eine leere Spalte die nicht gebraucht wird Columns("E:E").Select Selection.Delete Shift:=xlToLeft ' Markieren des gesamten Zellenbereiches mit Daten ' Der Datenbereich ist von Zelle A2 bis Zelle E2017 Dim zellenbereich As Range Set zellenbereich = Worksheets(1).Range("A:E") zellenbereich.Select [...] End If Nun ist diese If-Schleife recht lang. Daher möchte ich die Ausführungen in eine eigene Funktion packen. Das Problem dabei ist nun, wie man im Konstruktor der Funktion den Eingangsparameter als File deklariert. Der Versuch (klappt leider nicht - es heißt dass ein Object fehlt). Habe die Funktion außerhalb des Sub geschrieben. Function Durchlauf(datei As Object) ' Öffnen der aktuellen Rohdaten-Datei Workbooks.Open (file) ' Markieren und löschen der gesamten Spalte E ' Spalte E ist eine leere Spalte die nicht gebraucht wird Columns("E:E").Select Selection.Delete Shift:=xlToLeft ' Markieren des gesamten Zellenbereiches mit Daten ' Der Datenbereich ist von Zelle A2 bis Zelle E2017 Dim zellenbereich As Range Set zellenbereich = Worksheets(1).Range("A:E") zellenbereich.Select [...] End Function For monatstag_int = 1 To 31 Dim myObj As Object Set myObj = CreateObject("Scripting.FileSystemObject") Dim verzeichnisRohdaten As Object Set verzeichnisRohdaten = myObj.GetFolder(verzeichnisDerRohdaten) For Each file In verzeichnisRohdaten.Files Dim dateiname As String dateiname = file.Name Dim tagesKennung_string As String tagesKennung_string = Mid(dateiname, 7, 2) Dim tagesKennung_int As Integer tagesKennung_int = CInt(tagesKennung_string) Dim tagesKennung_stringOhneNull As Integer tagesKennung_stringOhneNull = CStr(tagesKennung_int) If tagesKennung_int = monatstag_int Then Durchlauf (datei = file) End If Wäre super wenn jemand helfen kann. Habe schon lange gesucht ob irgendwo erklärt ist wie man ein File als Eingangsparameter definieren kann. Danke schonmal

Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Eigene Funktion mit FileSystemObject
13.09.2017 12:40:55 Roman
NotSolved
13.09.2017 12:43:28 Gast473
NotSolved
13.09.2017 13:00:39 Gast88200
NotSolved
13.09.2017 14:23:07 Gast26715
NotSolved
Rot So
13.09.2017 19:47:35 Gast20905
NotSolved
13.09.2017 19:48:36 Gast20905
NotSolved
19.09.2017 15:57:56 Gast26558
NotSolved