Error de compilación: Se esperaba: =

31/10/2008 - 12:49 por juanjose_mm | Informe spam
Tengo el siguiente código:

Sub SustituirCadena(rango As Range, strOriginal As String)
'Sustituye el punto por la coma en los campos numéricos...
'...para compatibilidad con Access
Range(rango).Select
Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False,
_
ReplaceFormat:=False
End Sub


Si ahora añado la siguiente línea

SustituirCadena("F2:H5", "a")

me dá el error

Error de compilacion:
Se esperaba:

¿Porqué puede ser?
 

Leer las respuestas

#1 Juan M
31/10/2008 - 17:08 | Informe spam
Hola,

En un principio tienes un error en la llamada al código o en la declaración

Aquí has definido rango como rango

Sub SustituirCadena(rango As Range, strOriginal As String)



Aquí lo vas a emplear como si fuera texto

Range(rango).Select



Aquí envías al procedimiento un texto

SustituirCadena("F2:H5", "a")



Puedes hacer cualquiera de las dos cosas, pero no debes mezclarlas.

Si prefieres dejar rango definido como rango cambia lo siguiente:

Sub SustituirCadena(rango As Range, strOriginal As String)
'Sustituye el punto por la coma en los campos numéricos...
'...para compatibilidad con Access
Rango.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, _
SearchFormat:=False, ReplaceFormat:=False
End Sub

Y cambia la llamada por:

SustituirCadena Range("F2:H5"), "a"

Cabría expecificar la hoja que quieres emplear para modificar el rango.

Si prefeires emplear texto en la definición deberías hacerlo de la siguiente
forma:

Sub SustituirCadena(rango As String, strOriginal As String)
'Sustituye el punto por la coma en los campos numéricos...
'...para compatibilidad con Access
Range(rango).Replace What:=".", Replacement:=",", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, _
SearchFormat:=False, ReplaceFormat:=False
End Sub

Y la llamada sería:

SustituirCadena "F2:H5", "a"

En esta opción perderías la opción de indicar la hoja de modificación de los
datos y siempre los modificaría de la hoja activa.

Un saludo,
Juan


escribió

Tengo el siguiente código:

Sub SustituirCadena(rango As Range, strOriginal As String)
'Sustituye el punto por la coma en los campos numéricos...
'...para compatibilidad con Access
Range(rango).Select
Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False,
_
ReplaceFormat:=False
End Sub


Si ahora añado la siguiente línea

SustituirCadena("F2:H5", "a")

me dá el error

Error de compilacion:
Se esperaba:

¿Porqué puede ser?

Preguntas similares