Thema Datum  Von Nutzer Rating
Antwort
03.11.2005 14:05:52 Markus
NotSolved
03.11.2005 16:08:10 Rasta
NotSolved
04.11.2005 08:39:50 Markus
NotSolved
04.11.2005 12:39:21 Rasta
NotSolved
04.11.2005 15:05:52 Markus
NotSolved
04.11.2005 15:35:06 Rasta
NotSolved
04.11.2005 16:16:06 Markus
NotSolved
04.11.2005 16:46:52 Rasta
NotSolved
Rot Aw:Aw:Aw:Aw:Aw:Aw:Aw:Aw:ReDim ==> Subscript out of
08.11.2005 09:54:43 Markus
NotSolved

Ansicht des Beitrags:
Von:
Markus
Datum:
08.11.2005 09:54:43
Views:
621
Rating: Antwort:
  Ja
Thema:
Aw:Aw:Aw:Aw:Aw:Aw:Aw:Aw:ReDim ==> Subscript out of
Aber jetzt gehts wenigstens und es ist so jetzt sicher auch schneller, die arraygröße vorher zu errechnen und dann gleich festzulegen anstatt sie ständig zu ändern.
vielen dank für deine unterstützung!


Rasta schrieb am 04.11.2005 16:46:52:

hi markus,

sorry -- ärgerlich sowas- vor allem wen man zeit darin investiert hat

viele grüße

rasta

Markus schrieb am 04.11.2005 16:16:06:

Das kann ja wohl nicht wahr sein oder? Argl... Wo ist nur mein Matlab *heul* dann lass ich einmal die schleife vorher laufen um die Größe direkt festzulegen. ist wohl eh besser...

Aber vielen Dank! da wär ich im leben nicht drauf gekommen...

Rasta schrieb am 04.11.2005 15:35:06:

Hi Markus,

na so schlimm wars doch nicht oder? :-)

jetzt weiß ich auf was du hinaus willst und ich muss dich enttäuschen - das funktioniert so nicht, da bei "redim preserve" nur die letzte dimension geändert werden kann.

http://spotlight.de/zforen/mvb/m/mvb-1129111668-18930.html

schau mal unter foldendem link- evtl. hilft dir das weiter:

http://www.herber.de/forum/archiv/376to380/t378136.htm#378136

viele grüße

rasta

Markus schrieb am 04.11.2005 15:05:52:

*seufz*

*lufthol*

aaaaalso... :)

ich möchte mit folgender funktion in der lage sein, beliebige subsets von array zu bekommen. ARRIn ist das 2D array, das man reintut. die SubXXXStart/End zeigen das "von ... bis" an und RowStep und ColStep geben an, ob in 1er Schritten oder mehr gegangen werden soll

Function SubArray2D(ARRIn, SubRowStart As Integer, SubRowEnd As Integer, SubColumnStart As Integer, SubColumnEnd As Integer, Optional RowStep As Integer, Optional ColStep As Integer)

'default parameter
If IsMissing(RowStep) Then RowStep = 1
If IsMissing(ColStep) Then ColStep = 1

' This Function returns a subset of ARRIn, specified by the other parameters

Dim ARRTemp()

Dim VARNewRowIdx, VARNewColIdx As Integer
VARNewRowIdx = 0
VARNewColIdx = 0

'läuft über ARRIn und schreibt die werte in einen neuen array ARRTemp der richtigen größe

For IdxRow = 0 To SubRowEnd - SubRowStart Step RowStep
VARNewRowIdx = VARNewRowIdx + 1
For IdxCol = 0 To SubColumnEnd - SubColumnStart Step ColStep
VARNewColIdx = VARNewColIdx + 1
ReDim Preserve ARRTemp(VARNewRowIdx, VARNewColIdx)
ARRTemp(VARNewRowIdx, VARNewColIdx) = ARRIn(SubRowStart + IdxRow, SubColumnStart + IdxCol)
Next IdxCol
VARNewColIdx = 0
Next IdxRow

SubArray2D = ARRTemp
End Function

Aber er stürzt bei der Zeile
ReDim Preserve ARRTemp(VARNewRowIdx, VARNewColIdx)
immer mit subscript out of range ab, aber das kannst du ja selbst sehen...

Um die Funktion zu testen nutze ich folgende routine:

Sub JustSomeTest()
Dim MyRow, MyColumn As Integer
MyRow = 6
MyColumn = 8
Dim MyArray()
ReDim MyArray(MyRow, MyColumn)

'füllt den array mit irgendwelchen zahlen
For i = 1 To MyRow
For j = 1 To MyColumn
MyArray(i, j) = i * 10 & ":" & j * 10
Next j
Next i

'funktionsaufruf
ARRNew = SubArray2D(MyArray, 1, 6, 1, 6, 1, 1)

'zeigt arraygröße an
MsgBox UBound(ARRNew, 1) & ", " & UBound(ARRNew, 2)

'zeigt den inhalt einer arrayzeile an
VARTempString = ""
For i = 1 To UBound(ARRNew, 2)
VARTempString = VARTempString & ARRNew(1, 1) & " "
Next i

MsgBox VARTempString
End Sub

Wahrscheinlich läßt du das mal bei dir laufen und dann siehste ja was nicht geht...
das ganze brauch ich dann später zusammen mit einer funktion, die mir alle einzigartigen elemente eines arrays in einen neuen array schreibt.

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
03.11.2005 14:05:52 Markus
NotSolved
03.11.2005 16:08:10 Rasta
NotSolved
04.11.2005 08:39:50 Markus
NotSolved
04.11.2005 12:39:21 Rasta
NotSolved
04.11.2005 15:05:52 Markus
NotSolved
04.11.2005 15:35:06 Rasta
NotSolved
04.11.2005 16:16:06 Markus
NotSolved
04.11.2005 16:46:52 Rasta
NotSolved
Rot Aw:Aw:Aw:Aw:Aw:Aw:Aw:Aw:ReDim ==> Subscript out of
08.11.2005 09:54:43 Markus
NotSolved