Thema Datum  Von Nutzer Rating
Antwort
12.07.2021 16:25:51 Alex
NotSolved
12.07.2021 16:51:05 Gast51832
*****
NotSolved
12.07.2021 17:04:14 Gast85492
NotSolved
12.07.2021 17:31:39 Gast24794
NotSolved
12.07.2021 18:15:17 Gast98805
NotSolved
Blau Benutzerdefinierte Funktion "ANZAHLBUCHSTABEN"
12.07.2021 18:22:09 Gast50778
NotSolved
13.07.2021 17:44:54 Gast62614
NotSolved
18.07.2021 13:00:13 Alexander
NotSolved
12.07.2021 19:31:56 Gast68241
NotSolved
13.07.2021 17:46:23 Gast47332
NotSolved
16.07.2021 15:12:42 Gast25698
NotSolved
16.07.2021 16:46:40 Gast66256
NotSolved

Ansicht des Beitrags:
Von:
Gast50778
Datum:
12.07.2021 18:22:09
Views:
208
Rating: Antwort:
  Ja
Thema:
Benutzerdefinierte Funktion "ANZAHLBUCHSTABEN"

Es gibt noch einen gravierenden Fehler in deiner Funktion. Diese Analyse kannst du auch als Tipp ansehen, wie du Fehler finden kannst, bzw. ist es auch ein Hinweis darauf, Zwischenschritte daraufhin zu testen, ob sie machen, was du möchtest.

Deine Grundfunktion sieht so aus:

Public Function ANZAHLBUCHSTABEN(ParamArray Args() As Variant) As Integer
    
  Dim sum As Integer
  
  'Alle Parameter durchlaufen
  For i = LBound(Args) To UBound(Args)
    sum = sum + 1
  Next
  
  ANZAHLBUCHSTABEN = sum
End Function

Bei Anwendung sollte also die Anzahl der ausgewählten Zellen ausgewiesen werden. Das passiert aber nicht. Es steht immer 1 da. Wenn du die Funktion folgendermaßen erweiterst, siehst du, dass der Übergabeparameter Args() gar keinen Inhalt hat:

Public Function ANZAHLBUCHSTABEN(ParamArray Args() As Variant) As Integer
    
  Dim sum As Integer
  
  'In der MessageBox wird immer 0 angezeigt
  MsgBox UBound(Args)

  'Alle Parameter durchlaufen
  For i = LBound(Args) To UBound(Args)
    sum = sum + 1
  Next
  
  ANZAHLBUCHSTABEN = sum
End Function

Was bedeutet das? Offensichtlich, dass dein Übergabeparameter so nicht funktioniert. Was du übergeben musst ist eine Variable vom Datentyp Range. Um jede Zelle im übergebenen Bereich anzusprechen, musst du die Schleife ändern:

Public Function ANZAHLBUCHSTABEN(Args As Range) As Long
  
  Dim sum As Long
  Dim cell As Range

  'Alle Zellen im Übergabeparameter args durchlaufen
  'und summieren
  For Each cell In Args
    sum = sum + 1
  Next cell
  
  ANZAHLBUCHSTABEN = sum
End Function

 


Ihre Antwort
  • 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: Name: Email:



  • 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
12.07.2021 16:25:51 Alex
NotSolved
12.07.2021 16:51:05 Gast51832
*****
NotSolved
12.07.2021 17:04:14 Gast85492
NotSolved
12.07.2021 17:31:39 Gast24794
NotSolved
12.07.2021 18:15:17 Gast98805
NotSolved
Blau Benutzerdefinierte Funktion "ANZAHLBUCHSTABEN"
12.07.2021 18:22:09 Gast50778
NotSolved
13.07.2021 17:44:54 Gast62614
NotSolved
18.07.2021 13:00:13 Alexander
NotSolved
12.07.2021 19:31:56 Gast68241
NotSolved
13.07.2021 17:46:23 Gast47332
NotSolved
16.07.2021 15:12:42 Gast25698
NotSolved
16.07.2021 16:46:40 Gast66256
NotSolved