Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
952to956
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
952to956
952to956
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Logik bei Argumentübergabe

Logik bei Argumentübergabe
19.02.2008 11:12:00
Stefan
Hallo!
Ich hab ein kleines Verständnistproblem mit Argumenten.
Warum muss man einmal Argumente in Klammern übergeben zB: Left("Hallo", 2) und einmal ohne Klammern zB: ActiveWorkbook.SaveAs fileName, xlNormal
Wenn ich letzteres Beispiel in Klammern schreibe, kommt eine Fehlermeldung: Fehler beim Kompilieren: Erwartet : =
Kann mir das jemand erklären?
LG
Stefan

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

Betreff
Datum
Anwender
Anzeige
AW: Logik bei Argumentübergabe
19.02.2008 11:26:24
Nepumuk
Hallo Stefan,
Left ist eine Funktion welche einen Wert zurück gibt. Wärend SaveAs eine Methode ist, welche du auf das Workbook-Objektes anwendest. Diese Methode gibt keinen Wert zurück.
Gruß
Nepumuk

AW: Logik bei Argumentübergabe
19.02.2008 11:42:00
Stefan
Danke für die schnelle Antwort.
Aber eine Frage noch:
Was wäre, wenn eine Methode einen Wert zurück gibt? Muss man dann die Argumente auch in Klammern setzen? Oder muss man einer Methode die Argumente immer ohne Klammern übergeben?
Gibt es dafür auch eine logische Erklärung oder muss man das als M$-Gegeben hinnehmen?
Naja, waren jetzt 4 Fragen ;-)

Anzeige
AW: Logik bei Argumentübergabe
19.02.2008 12:04:42
Nepumuk
Hallo Stefan,
eine Methode kann keinen Wert zurückgeben. Aber du kannst das Objekt, welches über eine Methode erstellt wird an eine Objektvariable verweisen. Dann musst du die Argumente wieder in Klammern schreiben.
Beispiel:
Public Sub Beispiel1()
    Workbooks.Open "C:\Testmappe.xls"
End Sub

Public Sub Beispiel2()
    Dim objWorkbook As Workbook
    Set objWorkbook = Workbooks.Open("C:\Testmappe.xls")
End Sub

Das Objekt auf welches eine Methode ausgeführt wird, ist in dem Fall das Workbooks-Auflistungsobjekt. In beiden Beispielen passiert genau das selbe. Eine Mappe wird geöffnet (dem Auflistungsobjekt hinzugefügt). Nur, dass im zweiten Beispiel das hinzugefügte Workbook-Objekt (Unterschied: Workbooks / Workbook) direkt an eine Objektvariable übergeben wird. Die enthält damit aber nicht etwa eine Kopie des Objektes, sondern nur einen Pointer (eine Zahl vom Typ Long) der auf den Speicherbereich des tatsächlichen Objektes verweist.
Gruß
Nepumuk
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige