Red de conocimiento del abogados - Bufete de abogados - En VBA: Cómo copiar una cadena de elementos de una matriz a otra matriz

En VBA: Cómo copiar una cadena de elementos de una matriz a otra matriz

No existe tal función en VB, CopyMemory es posible, eche un vistazo al siguiente ejemplo

La diferencia de tiempo de prueba de VB6 usando los siguientes datos en mi máquina es aproximadamente 20 veces , y cien mil datos serán Como puede ver, utilicé un millón

Private Declare Sub CopyMemory Lib "kernel32" Alias ​​​​"RtlMoveMemory" (pDst As Any, pSrc As Any, ByVal ByteLen As Largo)

Función de declaración privada GetTickCount Lib "kernel32" () Mientras

Subcomando privado1_Click()

Dim arrA() Mientras

Dim arrB() Siempre

ReDim arrA(1 a 1000000)

ReDim arrB(2 a 1000000)

Para i = 1 a 1000000

arrA(i) = i

Siguiente i

'Obtiene el número de milisegundos desde el inicio

T = GetTickCount

Para i = 2 a 1000000

arrB(i) = arrA(i)

Siguiente

MsgBox "Tiempo necesario" + Str$( GetTickCount - T) + "Millisegundos"

'Mi máquina tarda unos 200 milisegundos. Es vieja y lenta, así que no te rías de ella

ReDim arrB(2 To 1000000) 'Tenga en cuenta que esta línea ha borrado la asignación anterior

T = GetTickCount

CopyMemory arrB(2), arrA(2), LenB(arrA(1)) * 999999

MsgBox "Tiempo tomado" + Str$(GetTickCount - T) + "milisegundos"

'Mi máquina tarda unos 10 milisegundos

'Ver si los últimos datos son correctos

MsgBox arrB(1000000)

p>

End Sub