Das Archiv des Excel-Forums

Array Übergabe möglich?

Bild

Betrifft: Array Übergabe möglich?
von: golem

Geschrieben am: 10.10.2003 13:01:09

Hallo,
stimmt es, dass Arrays an andere Prozeduren/MAkros/Funktionen(wie auch immer) nicht übergeben werden können?
falls doch biite mit Bsp.
Viele grüsse
Goli
Bild


Betrifft: AW: Array Übergabe möglich?
von: ChrisL
Geschrieben am: 10.10.2003 13:04:40

Hi Goli

z.B. so geht es...

Option Explicit
Public MyArray(1) As Variant


Sub Eingabe()
MyArray(0) = "A"
MyArray(1) = "B"
End Sub



Sub Ausgabe()
MsgBox MyArray(1)
End Sub



Gruss
Chris


Bild


Betrifft: Geht das auch von Fkt zu Fkt ohne Public? o.T.
von: golem
Geschrieben am: 10.10.2003 13:08:49




Bild


Betrifft: weiss nicht o.T.
von: ChrisL
Geschrieben am: 10.10.2003 13:19:21




Bild


Betrifft: AW: Array Übergabe möglich?
von: Michael Scheffler
Geschrieben am: 10.10.2003 13:23:41

Hallo,

ja, aber man sollte das richtig machen und nicht halbgewalkt.

Sauber prgrammiert sieht so etwas so aus:
Option Explicit
Option Base 1


Sub GolArray()
Dim arrInteger(3) As Integer
Dim intErg As Integer
arrInteger(1) = 1
arrInteger(2) = 2
arrInteger(3) = 3
TestArray

Sub arrInt:=arrInteger
intErg = TestArrayFun(arrInteger, 1)
MsgBox intErg
End Sub


Sub TestArraySub(arrInt() As Integer)
Dim iZaehler As Integer
For iZaehler = LBound(arrInt) To UBound(arrInt())
Debug.Print arrInt(iZaehler)
Next iZaehler
End Sub


Function TestArrayFun(arrInt() As Integer, intIndex As Integer) As Integer
TestArrayFun = arrInt(intIndex) ^ 2
End Function


Gruß

Micha


Bild


Betrifft: AW: Array Übergabe möglich?
von: golem
Geschrieben am: 10.10.2003 13:49:41

Hallo Micha,
sauber programmiert, aber:

was ist das: "Sub arrInt:=arrInteger" 'so was wie ein Pointer(?)

was bedeutet die Zeile drüber: "TestArray" --> nirgends kommt eine solche Fkt vor(?)

auf den ersten Blick : ->Spitzencode
Vielen Dank
Golem


Bild


Betrifft: Tschuldschung
von: Michaelk Scheffler
Geschrieben am: 10.10.2003 13:55:44

Jaja, es sollte schnell gehen mit der Umbenennung:-)

TestArraySub arrInt:=arrInteger -> Benamtes Argument, hat mit Pointer nichts zu tun

Worauf ich hinaus wollte:

Keinesfalls lobale Variable verwenden.


Bild


Betrifft: -->THANKS<---
von: golem
Geschrieben am: 10.10.2003 14:18:19

hätte ich eigentlich auch selbst drauf kommen sollen...

Spitzen-Algo!

Hochachtungsvoll
Golem


Bild


Betrifft: AW: Array Übergabe möglich?
von: Hajo_Zi
Geschrieben am: 10.10.2003 13:49:53

Hallo Golem

so langsam versteh ich Dein System nicht mehr. In dem schon Heute angesprochen Beispiel mit Ordner auslesen wurd doch ein Array von einer Sub zu einer anderen übergeben.

Siehst Du das Forum hier als Arbeitsbeschaffungsmaßnahme an???



Falls Code vorhanden wurde dieser getestet unter Betriebssystem XP Pro und Excel Version XP SBE.
Bitte kein Mail, Probleme sollen im Forum gelöst werden.

Microsoft MVP für Excel

Das Forum lebt auch von den Rückmeldungen.

http://home.media-n.de/ziplies/



Bild


Betrifft: AW: Array Übergabe möglich?
von: Golem
Geschrieben am: 10.10.2003 14:09:15

Nein, ich sehe dieses Forum nicht als ABM!
Ich weiß, daß ich in den letzten 30-40 Tagen viele Fragen im Forum gestellt habe.
Da Du so direkt fragst: Ich bin im Praktikum und soll mir größtenteils selbst VBA&Excel beibringen und weil ich gemerkt habe, dass man in VBA viel mehr Möglichkeiten hat Programme zu gestalten als in C/C2+ habe ich mir eigene kleine Projekte ausgedacht andenen ich bastele.
In diesem Forum habe ich bereits viel gelernt und rasch gemerkt hier schnell und unkompliziert Hilfestellungen zu bekommen. Falls ich das Forum Deiner Meinung nach zu sehr belaste, laß es mich wissen.

Viele Grüsse
Golem


Bild


Betrifft: als kleines Dankeschön....
von: golem
Geschrieben am: 10.10.2003 16:10:47

Hallo Hajo,
hier habe ich mal was für Deine Homepage gemacht:


Option Explicit
Declare

Function Ton& Lib "kernel32" Alias "Beep" (ByVal dwFrequenz As Long, ByVal dwDauer As Long)

Sub Komposition()
Dim b As Integer, j As Integer, i As Integer
b = 0
For j = 0 To 3
b = 0
For i = 0 To 50
b = b + 10
Ton 100 + b, 100
Next
b = 0
For i = 0 To 50
b = b + 10
Ton 600 - b, 100
Next
Next j
End Sub


Dein von damals geposteter Code war lustig!
Nochmals danke


 Bild