Någon som kan förklara varför inte nedanstående flytt av array fungerar. Vad är syftet med funktionen? I varje varv så testar du om ClientHandles(i)=1 och då skriver du över Test med en ny referens till en array. Under alla omständigheter så deklareras Test om i varje loop och den går ju out of scope innan den används... Jo, det är så att jag har mycket mer kod som säkert skulle beskriva funktionen bättre men själva poängen som jag försöker beskriva är hur man flyttar en array av typen variant till en annan array. Hej,Arrayer...
Vid Case 1 vill jag flytta arrayen ItemValues till arrayen Test.
Private Sub OPCgrp_DataChange(ByVal TransactionID As Long, ByVal NumItems As Long, ClientHandles() As Long, ItemValues() As Variant, Qualities() As Long, TimeStamps() As Date)
Dim i As Integer
Dim Test() As Variant
For i = 1 To NumItems
ReDim Test(UBound(ItemValues(i)))
Select Case ClientHandles(i)
Case 1: Test = ItemValues(i)
End Select
Next i
End SubSv: Arrayer...
Vill du KOPIERA arrayen eller vill du referera till samma array? Man kan inte i VB6 eller .Net kopiera en array bara genom att skriva :
array1=array2
Antingen har du tänkt helt fel eller har du kapat lite för mycket i koden...Sv:Arrayer...
Jag har provat nedanstående och det fungerar alldeles utmärkt men så fort jag har en array av typen variant som källa som går det inte.
Dim Test1() As String
Dim Test2() As String
ReDim Test1(10)
ReDim Test2(10)
Test2 = Test1
Men i annat fall får jag loopa igenom och flytta över värde för värde...Sv: Arrayer...
Om man tvunget vill använda redim och inte förlora data så skall man köra redim...preserve
Lycka till!
//Johan