Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
592to596
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
592to596
592to596
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Array für Function ??

Array für Function ??
01.04.2005 06:31:03
Erich M.
Hallo EXCEL-Freunde,
für einen Code habe ich aus dem Forum (insb. Josef Ehrensberger) folgendes Array erhalten:

Option Explicit
Private varDaten(4) As Variant
Private Sub Daten()
'Daten-Arrays in Array "varDaten" schreiben
'Dimension von "varDaten" anpassen!
'Anzahl der Einträge beliebieg!
'An erster Stelle immer die Nummer
varDaten(0) = Array(231, "Test 1")
varDaten(1) = Array(232, "Test 2")
varDaten(2) = Array(233, "Test 3")
varDaten(3) = Array(234, "Test 4")
End Sub
Sub Eintragen(Bereich As Range, beginn As Integer, ende As Integer, offset As Integer)
Dim n As Integer, i As Integer
Dim rng As Range
If offset < 0 Then offset = offset - 1
Daten
If ende < beginn Then ende = beginn
For n = 0 To UBound(varDaten)
Set rng = Bereich.Find(varDaten(n)(0), LookAt:=xlWhole)
If Not rng Is Nothing Then

For i = beginn To IIf(ende > UBound(varDaten(n)), UBound(varDaten(n)), ende)
rng.offset(0, offset + i) = varDaten(n)(i)
Next

End If
Set rng = Nothing
Next
End Sub

'Aufruf aus beliebiger Prozedur (auch aus anderem Modul!)
Sub test1()
'Aufruf mit Übergabe des Bereiches in dem die
'Nummern überprüft bzw. verglichen werden sollen!
'Parameter
' × Bereich
' × beginn -ab welcher "Spalte" die Daten aus dem Array ausgelesen werden
' × offset -Spaltenoffset vom Bereich zur Ersten Eintragsspalte
Eintragen Range("A2:A6"), 0, 0
End Sub


Code eingefügt mit: Excel Code Jeanie
Ist es auch möglich, solch ein Array für eine Function zu erstellen, als Ersatz für eine ewig lange „If / ElseIf“-Funktion:
Option Explicit

Function Test(K)
If K < 2999999 Then
Kart = "Test 1"
ElseIf K < 9999999 Then
Kart = "Test 2"
ElseIf K < 29999999 Then
Kart = "Test 3"
ElseIf K < 64299999 Then
Kart = "Test 4"
End If
End Function
'Array?
'
'varDaten(0) = Array(< 2999999, "Test 1")
'varDaten(1) = Array(< 9999999, "Test 2")
'varDaten(2) = Array(< 29999999, "Test 3")
'varDaten(3) = Array(< 64299999, "Test 4")
'
'--> Function ??

Code eingefügt mit: Excel Code Jeanie
Besten Dank für eine Hilfe!
mfg
Erich
http://www.toolex.de

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Array für Function ??
02.04.2005 08:18:39
andre
Hallo Erich,
imPrinzip so:

Function test(k)
Dim vardaten(3, 1)
vardaten(0, 0) = "Test 1": vardaten(0, 1) = 2999999
vardaten(1, 0) = "Test 2": vardaten(1, 1) = 9999999
vardaten(2, 0) = "Test 3": vardaten(2, 1) = 29999999
vardaten(3, 0) = "Test 4": vardaten(3, 1) = 64299999
For i = 0 To UBound(vardaten())
If k < vardaten(i, 1) Then
test = vardaten(i, 0)
Exit For
End If
Next
End Function


Sub test2()
Kart = test(4)
MsgBox Kart
End Sub

Genial
02.04.2005 19:16:33
Erich M.
Hallo andre,
habe die Antwort erst jetzt entdeckt (hatte schon nicht mehr damit gerechnet).
Funktioniert bestens; vielen Dank!!
mfg
Erich
EXCEL-Shareware und Freeware: http://www.toolex.de
EXCEL und Lottogewinne machen glücklich: http://48678.rapidforum.com
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige