Eine VBA Function erstellen
#1
Hallo zusammen

ich hab noch nie eine VBA- Function erstellt und bräuchte bitte einmal etwas Unterstützung und Rat!

Ich habe erst eine Sub erstellt und wollte das dann in eine Function packen das Ergebnis sieht so aus und gibt nur einen Fehler aus...


 
Code:
Option Explicit

Function RuheZeiten(L As Long) As String
Dim RuheZeit As String
Dim G As Integer
Dim Cell As Range

For Each Cell In Range(L)
       If Cell.Value <> "" And Cell = Cell.Offset(, 1) Then
       G = G + 1
       Else
       G = 0
       End If
       If G > 5 Then
       RuheZeit = "Ruhezeit!"
       G = 0
       End If
       
Next

If RuheZeit = "" Then
RuheZeiten = ""
Else
RuheZeiten = RuheZeit
End If

End Function

ich vermute, dass mein Fehler in der Marix liegt.. kann mir jemand helfen?
Top
#2
Hallöchen,

du übergibst L As Long und schreibst dann einfach

For Each Cell in Range(L) '<-- geht natürlich nicht !!!

Soll L eine Zeile darstellen ? --> Rows(L)

Dann so ...

For Each Cell in Rows(L).Cells

Besser ? Und du hast den Code sicher schon in einem allgemeinen Modul stehen ... :19:
Top
#3
Hallo,

Du übergibst dem Argument von Range einen Long-Wert, was nicht funktionieren kann. L müsste ein String (als Bereichsadresse) sein
oder Du deklarierst L direkt als Range. Kommt darauf an, was Du machen möchtest. 

Wenn L eine Bereichadresse ist, z.B. "A1:A4", dann bliebe ggf. For Each Cell In Range(L) erstmal so, wenn L ein Range-Objekt wäre,
dann würde sich das ggf. ändern zu For Each Cell In L.

Egal wie, beachte die Datentypen, die Du übergibst bzw. anlegst.

Oh, sehe gerade, Sabina alias Flotter Feger ist auch hier. Schön & Freu Smile

Gruß
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) :: 2011-2019 & 2020-2022 :: 10 Awards
https://de.excel-translator.de/translator :: Online Excel-Formel-Übersetzer :: Funktionen :: Fehlerwerte :: Argumente :: Tabellenbezeichner
[-] Folgende(r) 1 Nutzer sagt Danke an maninweb für diesen Beitrag:
  • Frogger1986
Top
#4
Vielen Dank! Als String hatte ich versucht, hat ihm aber nicht gefallen! Habs nun als Range übergeben, so klappts!!!
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste