podes usas copymemory de todas formas creo que tuvieras que buscar otra opcion a tu problema.
un ejemplo, solo que utilize todos string porque vi que en algunas partes si mesclamos string con longs o bytes hay algo que se corre y no esta bien, asi que fijate si te sirve o alguien mas sabe bien como pasar las variables con copymemory
Option Explicit
Private Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" (ByRef Destination As Any, ByRef Source As Any, ByVal Length As Long)
Private Type MiUDT
Nombre As String * 50
Apellido As String * 50
Edad As String * 3 'as byte < mmm no me funciona bien
End Type
Private Sub Form_Load()
Dim MU1 As MiUDT
Dim MU2 As MiUDT
Dim sBuff As String
sBuff = String(LenB(MU1), vbNullChar)
With MU1
.Nombre = "Leandro"
.Apellido = "Ascierto"
.Edad = 20 ':)
End With
CopyMemory ByVal sBuff, ByVal MU1, LenB(MU1)
CopyMemory ByVal MU2, ByVal sBuff, LenB(MU2)
With MU2
Debug.Print .Nombre
Debug.Print .Apellido
Debug.Print .Edad
End With
End Sub
Saludos.