Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: sub aus function aufrufen

sub aus function aufrufen
Lutz
hallo!
wie kann ich aus einer function ein sub aufrufen?
in der function wird aus einer matrix ein wert, nach angabe der x und y stützstelle, interpoliert. nun sollen zur besseren übersicht die zellen aus denen er interpoliert fett gemacht werden.
die auswahl der zellen ist egal, nur kann ich sie nicht aus der function heraus fett machen (hab ich in einem thread gelesen hier). und einfach ein sub aufrufen scheint auch net zu gehen. noch jemand eine idee?
danke schonmal im voraus.
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: sub aus function aufrufen
Uwe
Hallo,
wenn ich es richtig verstehe, stehen die Werte in einer Excel Tabelle. Dann kannst du aus einer VBAFunktion heraus die Zellen Fett machen.
Z.B. Workbooks("Mappe1").Sheets("Tabelle1").Cells(1, 1).Font.Bold = True
AW: sub aus function aufrufen
Hans
Eine Function arbeitet in einem geschützten Adressraum, auch wenn sie eine Sub aufruft!
Sie hat keine Schreibrechte in einer Tabelle und darf es auch nicht haben - versteht es halt :-)...
Gruß HW
Anzeige
AW: sub aus function aufrufen
Ulf
Kopier dir diese Aussage, du wirst sie noch sehr oft brauchen.
Ulf
AW: sub aus function aufrufen
Lutz
also geht das nicht. ok. mein prof wird begeistert sein :)
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Sub aus Function aufrufen: Tipps und Tricks für Excel VBA


Schritt-für-Schritt-Anleitung

Um ein Sub aus einer Function in Excel VBA aufzurufen, solltest du wissen, dass dies nicht direkt möglich ist. Hier sind die Schritte, die du befolgen kannst:

  1. Erstelle ein Sub: Definiere ein Sub, das die gewünschten Aktionen ausführt, z.B. das Formatieren von Zellen.

    Sub FormatCells()
       Workbooks("Mappe1").Sheets("Tabelle1").Cells(1, 1).Font.Bold = True
    End Sub
  2. Verwende das Sub in einer anderen Prozedur: Du kannst das Sub in einer anderen Sub oder Function aufrufen, aber nicht direkt innerhalb einer Function.

    Sub MainProcedure()
       Call FormatCells
    End Sub
  3. Rufe die MainProcedure auf: Stelle sicher, dass du MainProcedure aufrufst, um das Sub auszuführen.


Häufige Fehler und Lösungen

  • Fehler: "Sub oder Function nicht definiert": Dies passiert, wenn du versuchst, ein Sub aus einer Function aufzurufen. Stelle sicher, dass du das Sub in einer anderen Prozedur verwendest.

  • Fehler beim Zugriff auf Zellen: Wenn du versuchst, Zellen innerhalb einer Function zu formatieren, kann dies nicht funktionieren. Verwende unbedingt ein Sub, um die Formatierung durchzuführen.


Alternative Methoden

Wenn du dennoch Zellen aus einer Function heraus formatieren möchtest, kannst du die Application-Objekte verwenden, um beispielsweise den Wert zurückzugeben und basierend auf diesem Wert in einer anderen Prozedur die Formatierung vorzunehmen.

Function InterpolateValue(x As Double, y As Double) As Double
    ' Berechnungen hier...
    InterpolateValue = Wert
End Function

Sub MainProcedure()
    Dim result As Double
    result = InterpolateValue(1, 2)
    ' Formatierung hier...
    Call FormatCells
End Sub

Praktische Beispiele

Ein Beispiel für das Sub-Aufrufen könnte so aussehen:

Sub HighlightInterpolatedCells()
    Dim x As Double, y As Double
    x = 1
    y = 2
    Dim result As Double
    result = InterpolateValue(x, y)

    ' Formatierung der Zellen
    Call FormatCells
End Sub

Hier wird das Sub FormatCells aufgerufen, nachdem die Funktion InterpolateValue ausgeführt wurde.


Tipps für Profis

  • Bedenke den geschützten Adressraum: Functions dürfen keine Änderungen in der Tabelle vornehmen. Nutze Sub-Prozeduren für diese Aufgaben.

  • Verwende Public und Private: Achte darauf, wie du deine Subs deklarierst. Public ermöglicht den Zugriff von anderen Modulen, während Private nur innerhalb des Moduls verfügbar ist.


FAQ: Häufige Fragen

1. Kann ich ein Sub direkt aus einer Function aufrufen? Nein, das ist nicht möglich. Verwende eine andere Prozedur, um das Sub aufzurufen.

2. Wie kann ich Zellen formatieren, während ich eine Function benutze? Du kannst die Formatierung in einem separaten Sub durchführen und dieses Sub nach der Berechnung in der Hauptprozedur aufrufen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige