Thema
|
Datum
|
Von Nutzer
|
Rating
|
Antwort
|
Eigene Funktion mit FileSystemObject |
13.09.2017 12:40:55 |
Roman |
|
|
|
13.09.2017 12:43:28 |
Gast473 |
|
|
|
13.09.2017 13:00:39 |
Gast88200 |
|
|
|
13.09.2017 14:23:07 |
Gast26715 |
|
|
|
13.09.2017 19:47:35 |
Gast20905 |
|
|
|
13.09.2017 19:48:36 |
Gast20905 |
|
|
|
19.09.2017 15:57:56 |
Gast26558 |
|
|
Von:
Roman |
Datum:
13.09.2017 12:40:55 |
Views:
1181 |
Rating:
|
Antwort:
|
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
|
- 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
Bitte geben Sie ein aussagekräftiges Thema an.
Bitte geben Sie eine gültige Email Adresse ein!
- 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
|
Eigene Funktion mit FileSystemObject |
13.09.2017 12:40:55 |
Roman |
|
|
|
13.09.2017 12:43:28 |
Gast473 |
|
|
|
13.09.2017 13:00:39 |
Gast88200 |
|
|
|
13.09.2017 14:23:07 |
Gast26715 |
|
|
|
13.09.2017 19:47:35 |
Gast20905 |
|
|
|
13.09.2017 19:48:36 |
Gast20905 |
|
|
|
19.09.2017 15:57:56 |
Gast26558 |
|
|