Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1676to1680
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
Inhaltsverzeichnis

Parameterübergabe String und/oder Array

Parameterübergabe String und/oder Array
18.02.2019 19:49:28
Werner
Hallo Forumsmitglieder,
bisher hatte ich mich mit FSO durch die Struktur verschiedener Verzeichnisse "gekämpft". Doch seit der Umstellung auf Excel 2019 (kein Schreibfehler!) erhalte ich einen "Laufzeitfehler 70", "Zugriff verweigert".

Deshalb bin ich gerade dabei, eine Funktion zu erstellen, um Informationen über ein angegebenes Verzeichnis zu erhalten. Dies geschieht in der Weise, dass z. B. ein DIR-Command im Batch abgesetzt wird und das Ergebnis auf eine Datei geschrieben wird, welche dem Aufrufer dann zur Verfügung gestellt wird. Bei diesem DIR-Command sind natürlich diverse Optionen beim Aufruf möglich.
Bisher geschieht das über einen String als einzigen Parameter. Ein möglicher Parameter sieht dabei wie folgt aus:
Result = MyFunc("Dir C:\Benutzer\username\* /S /-C /OGn")
Anschließend wird "Result" in einen Array gestellt:
Lines = Split(Result, vbNewLine)
Soweit funktioniert das Verfahren schon.
Nun möchte ich das Verfahren so erweitern, dass mit einem Aufruf mehrere Verzeichnisse (inkl. Laufwerk) ausgewählt werden können. Dabei stoße ich mit der String-Lösung an meine Grenzen: wie erkenne ich das Ende des 1. Parameter-Teils, um den 2. und weitere Parameter zu verarbeiten.
Ich habe auch daran gedacht, die Informationen in Form eines Array zu übergeben. Aber dann müsste ich diese Schreibweise auch machen, wenn ich nur einen Parameter-String benutze.
Kann ich in der aufgerufenen Funktion erkennen, ob mir ein Array oder ein "normaler" String übergeben wurde? Und wenn ja, wie?
War kann mir dazu einen Rat (ggf. mit Muster) geben?
Gruß
Werner

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
TypeName
19.02.2019 13:14:53
ChrisL
Hi Werner
Sub t()
Call test("EinString")
Call test(Array("A", "B"))
End Sub

Sub test(x As Variant)
If TypeName(x) = "String" Then
MsgBox "ich bin ein String"
Else
MsgBox "ich bin kein String"
End If
End Sub

Ich würde allerdings generell als Array übergeben.
cu
Chris
AW: TypeName
21.02.2019 08:09:11
Werner
Hallo Chris, hallo Nepumuk,
vielen Dank für Euro Antworten. Dadurch wurde schon wieder eines meiner Probleme gelöst.
Grundsätzlich möchte ich noch folgendes zum Ausdrucck bringen: es freut mich, dass mir in diesem Forum schon so oft geholfen wurde; recht herzlichen Dank.
Gruß
Werner
Anzeige
AW: Parameterübergabe String und/oder Array
19.02.2019 13:43:01
Nepumuk
Hallo Werner,
du könntest ein Parameter-Array benutzen. Beispiel:
Option Explicit

Public Sub test1()
    Call test2(1, 2.22, 3, "A", True)
    Call test2
End Sub

Public Sub test2(ParamArray pavntArray() As Variant)
    Dim ialngIndex As Long
    If IsMissing(pavntArray) Then
        Debug.Print "Kein Parameter übergeben."
    Else
        For ialngIndex = LBound(pavntArray) To UBound(pavntArray)
            Debug.Print pavntArray(ialngIndex)
        Next
    End If
End Sub

Gruß
Nepumuk
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige