estás enmascarando variables...
La declaración de esta función tiene todos los parámetros de tipo variant...
Pero luego dentro de la función estás declarando variables con los mismos nombres...
Con lo que forzosamente debe saltarte un error de duplicación de nombre de variables (no recuerdo de memoria el mensaje de erro exacto pero es similar)
Prueba este código para verlo mejor:
Debes declarar en la función el tipo específico del parámetro si es conocido en tiempo de diseño (que asumo que sí), que la mayoría parecen ser strings...
Además el uso de variants debe restringirse a lo estrictamente necesario, es decir cuando forzosamente un parámetro pueda ser igualmente un string, un buleano, un array, etc... porque su uso indiscriminado ralentiza en exceso la operatoria hasta 10 veces, por la comprobación de tipos y enlace en tiempo de ejecución (late binding).
Con lo que si más adelante en el código usas tales variables, en realidad estás usando
Y sobre el argumento no opcional, es que estás omitiendo pasar el valor de un parámetro...
...de todos modos si pones el código completo (de la función llamante y la llamada), podría verse que otros problemas tienes, con código parcial solo se puede indicar lo que se ve.
La declaración de esta función tiene todos los parámetros de tipo variant...
CitarPrivate Sub Enviar_Email_Envioprimera(NUMERO_DE_CONTRATO, OFICINA, FECHA_1_RECLAMACION, CONTRATO, CCM, SEGURO, GARANTIA_RECOMPRA, ENVIO_RENT_and_TECH)
Pero luego dentro de la función estás declarando variables con los mismos nombres...
Citar...
Dim CONTRATO As String
Dim CCM As String, GARANTIA_RECOMPRA As String, SEGURO As String,
Con lo que forzosamente debe saltarte un error de duplicación de nombre de variables (no recuerdo de memoria el mensaje de erro exacto pero es similar)
Prueba este código para verlo mejor:
Código (vb) [Seleccionar]
Private Sub Command1_Click()
Call Enviar_Email_Envioprimera("hola", " esto no se vera", #11/2/2019#, "blablabla", "ccm", "muy seguro", "no recompramos", "a saber")
End Sub
Private Sub Enviar_Email_Envioprimera(NUMERO_DE_CONTRATO, OFICINA, FECHA_1_RECLAMACION, CONTRATO, CCM, SEGURO, GARANTIA_RECOMPRA, ENVIO_RENT_and_TECH)
Dim CONTRATO As String
Dim CCM As String, GARANTIA_RECOMPRA As String, SEGURO As String
MsgBox CONTRATO & vbCrLf & CCM & vbCrLf & GARANTIA_RECOMPRA & vbCrLf & SEGURO
End Sub
Debes declarar en la función el tipo específico del parámetro si es conocido en tiempo de diseño (que asumo que sí), que la mayoría parecen ser strings...
Además el uso de variants debe restringirse a lo estrictamente necesario, es decir cuando forzosamente un parámetro pueda ser igualmente un string, un buleano, un array, etc... porque su uso indiscriminado ralentiza en exceso la operatoria hasta 10 veces, por la comprobación de tipos y enlace en tiempo de ejecución (late binding).
Con lo que si más adelante en el código usas tales variables, en realidad estás usando
Y sobre el argumento no opcional, es que estás omitiendo pasar el valor de un parámetro...
...de todos modos si pones el código completo (de la función llamante y la llamada), podría verse que otros problemas tienes, con código parcial solo se puede indicar lo que se ve.