Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
636to640
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
636to640
636to640
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

mehrdimensionale Arrays an Prozedur übergeben

mehrdimensionale Arrays an Prozedur übergeben
15.07.2005 08:46:02
Ulli
Hallo,
wie deklariere ich in einem funktionskopf ein mehrdimensionales Array? Möchte dieser Funktion nämlich gerne ein solches übergeben
Ich möchte, zB text(1 to 10, 1 to 5) an die Funktion zB sub ausgabe(?) übergeben. Was muss jetzt in den Klammern stehen? Und was steht im Aufruf [Call ausgabe(?)]?
Danke,
Ulli

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: mehrdimensionale Arrays an Prozedur übergeben
15.07.2005 09:03:39
MichaV
Hi,
gar nicht!

Sub bla()
Dim t(1 To 10, 1 To 10)
t(1, 1) = "Feld 1,1"
t(5, 5) = "Feld 5,5"
ArrayÜbergeben (t)
End Sub


Sub ArrayÜbergeben(t)
MsgBox t(1, 1) & vbCrLf & t(5, 5)
End Sub

Gruss- Micha
dyn, mehrdimensionale Arrays an Prozedur übergeben
15.07.2005 09:09:24
Ulli
und jetzt die erweiterung: wie kann ich _dynamische_ mehrdimensionale arrays übergeben?
zB text(1 to anz, 1 to 10)?
Ich weiß nämlich erst zum unter-prozeduraufruf, wie groß das zu übergebende Array ist...
Ulli
ReDim
15.07.2005 09:13:01
Galenzo
siehe Hilfe
AW: ReDim
15.07.2005 09:22:24
MichaV
Hi,
das geht aber nur, wenn er dann in der aufrufenden Prozedur nicht mehr mit dem Array weiterarbeitet. Das will er aber bestimmt. Dann fällt mir dazu nur ein:

Sub bla()
Dim t()
t = ArrayÜbergeben(t)
t(1, 1) = "Feld 1,1"
t(5, 5) = "Feld 5,5"
t = ArrayÜbergeben(t)
End Sub


Function ArrayÜbergeben(t)
'Grenzen von t festlegen
ReDim Preserve t(1 To 100, 1 To 10)
MsgBox t(1, 1) & vbCrLf & t(5, 5)
ArrayÜbergeben = t
End Function

Gruss- Micha
Anzeige
AW: dyn, mehrdimensionale Arrays an Prozedur übergeben
15.07.2005 09:28:23
MichaV
Hi,
"zB text(1 to anz, 1 to 10)"
ist dann aber schon eine Ecke schwieriger, weil Du mit ReDim nur die letzte Dimension ändern kannst. Die erste Dimension kannst Du bei 2-D-Feldern auch ändern, aber nur über einen kleinen Umweg.
Gruss- Micha
AW: mehrdimensionale Arrays an Prozedur übergeben
15.07.2005 09:06:21
Galenzo
z.B. so:
Dim arr(2, 2) As Integer
arr(2, 2) = 12
test arr
Sub test(Feld As Variant)
MsgBox Feld(2, 2)
Viel Erfolg!
AW: mehrdimensionale Arrays an Prozedur übergeben
17.07.2005 11:15:18
Ralf
Hi Ulli,
Du kannst das Problem mit mehrdimensionalen Arrays ganz elegant durch benutzerdefinierte Datentypen umgehen. Definiere den Datentyp in einem globalen Modul. Bsp.:
'MainModul:
'Typ definieren
Type DoubleDimension
Dimension1 As Integer
Dimension2 As Integer
End Type
'Ein x-beliebiges Modul:

Sub feld()
Dim aFeld() As DoubleDimension, x%, y%
For x = 0 To 10
ReDim Preserve aFeld(x)
aFeld(x).Dimension1 = x
aFeld(x).Dimension2 = x + 1
y = RechneMal(aFeld(x).Dimension1) + RechneMal(aFeld(x).Dimension2)
MsgBox y
Next x
End Sub


Function RechneMal(Wert As Integer) As Integer
RechneMal = Wert
End Function

Ich hoffe, das hilft Dir weiter.
Ciao, Ralf
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige