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

Forumthread: VBA Funktionen in Kombinationen mit Excel Namen

VBA Funktionen in Kombinationen mit Excel Namen
29.09.2015 15:46:22
JOGO
Hallo,
ich bin seit langem auf der Suche nach einer Lösung für folgendes Problem.
Ich kann z.B. eine Funktion verfassen
Public Function test(a)
test = a ^ 2
End Function

und diese in Excel dann benutzen "=test(A2)".
Als Ingenieur will man aber alles schön ordentlich und möchte z.B. die ganze Spalte A als Namen z.B. v_wind definieren. Weil dann v_wind ein array ist, geht das dann nicht mehr (es sei denn mit irgendwelchen tricks, die das dann unübersichtlich machen (z.B. "=test(index(v_wind,1))").
Hat jemand eine schöne Lösung, z.B. Arrayerkennung mit VBA o.Ä.?
Ein Dankeschön schonmal vorneweg und Grüße
Johannes

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Funktionen in Kombinationen mit Excel Namen
29.09.2015 15:55:27
ChrisL
Hi
Function test(a)
If IsArray(a) Then
MsgBox "Array"
Else
MsgBox "kein Array"
End If
End Function
cu
Chris

AW: VBA Funktionen in Kombinationen mit Excel Namen
29.09.2015 15:58:25
Daniel
Hi
du kannst mit VarType(a) abfragen, was dir der Anwender als a übergeben hat und dann differenziert reagieren, je nachdem ob du einen Einzelwert oder ein Array erhalten hast.
Gruß Daniel

Anzeige
AW: VBA Funktionen in Kombinationen mit Excel Namen
29.09.2015 16:31:46
fcs
Hallo Johannes,
folgendes könnte funktionieren, ist aber auch nicht so ganz in deinem Sinne von ingeneurmäßiger Schönheit.
=test(index(v_wind,Zeile()-Zeile(v_wind)+1)))
Was du machen könntes: Wandle den Zellbereich inkl. der Spalten-Titel in eine Tabelle um.
Dann kann man in den Formeln bei Bedarf mit den Spaltentiteln arbeiten.
Userbild
Gruß
Franz

Anzeige
AW: VBA Funktionen in Kombinationen mit Excel Namen
30.09.2015 13:11:41
Rudi
Hallo,
Function test(a, Optional z As Long)
If IsArray(a) Then
test = a(z, 1) ^ 2
Else
test = a ^ 2
End If
End Function
ABC
2244
3399
441616
552525
663636

NameBezug
v_wind=Tabelle2!$A:$A

ZelleFormel
B2=test(v_wind;ZEILE())
C2=test(A2)

Gruß
Rudi

Anzeige
Wie man so etwas generell machen kann, ...
01.10.2015 01:13:53
Luc:-?
…Johannes,
findest du hier.
Gruß, Luc :-?
Besser informiert mit …
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige