Lo de tu primer post:¿Por que sin usar variables globales?
Si no usas variables globales la variable pierde el valor asignado al terminar la funcion, asi que al volver a ejecutar la funcion empieza de cero otra vez.
Y al no ser global otra funcion no puede leerla porque no esta declarada.
Tenes dos opciones:
1- O usar variables globales.
2- O pasar datos de funcion en funcion, ejemplo:
Funcion UNO()
Dim MisDatos as String
MisDatos = "Hola!"
msgbox MisDatos
DOS (MisDatos)
End Funcion
Funcion DOS(Datos as String)
msgbox Datos
End Funcion
En tu ultimo post:Suponiendo que ws es del programa UNO y ws1 del programa DOS
UNO toma los datos que se le envian y los vuelve a enviar a DOS ¿Para que?
Como sea, no estas usando ningun Index, la forma correcta de hacerlo es:
Private Sub ws_DataArrival(Index As Integer, ByVal bytesTotal As Long)
Dim datos As String
ws.GetData datos
ws.SendData datos
End Sub
Private Sub ws1_DataArrival(Index As Integer, ByVal bytesTotal As Long)
Dim datos1 As String
ws1.GetData datos1
End Sub
PD:Postea tu duda mas puntual de que es lo que queres hacer exactamente, asi podre decirte de que forma hacerlo.