Pues pasar desde una macro a otra lo puedes hacer con la función
Call
Pero eso de guardar el dato de una variable para que pase a la otra macro yo lo hago con una hoja en excel, es decir, tengo una hoja a la que llamo datos y todos estos valores que necesito pasar de una macro a otra los grabo en esta hoja "Datos" y desde la otra macro lo que hago es leer el valor de la celda que modifico la macro 1; te pongo un ejemplo:
Sub Macro1()
a = 1
Sheets("Datos").Range("A1").value = a
End Sub
Sub Macro2()
b = Sheets("Datos").Range("A1").value
End Sub
De esta manera lleve el valor de la variable a desde la macro 1 a la macro2, pero claro utilice la hoja "Datos" que tengo creada en mi libro excel.