una sub refrescar parametros para pantalla macro llamar funciones funcion con como codigo excel vba subroutine

refrescar - excel vba llamada subrutina con variables



refrescar pantalla excel vba (3)

En realidad tienes 2 problemas.

Primero, la respuesta real a tu pregunta. Necesitas decir:

Call EnterCellValueMonthNumber("N23:Q23",1)

Pero eso aún no funcionará si lo ejecuta, ya que ha establecido cells de tipo range ... configúrelo como tipo de string con esto en su lugar:

Sub EnterCellValueMonthNumber(cells As String, number As Integer) Range(cells).Select ActiveCell.FormulaR1C1 = number End Sub

Definí la siguiente subrutina:

Sub EnterCellValueMonthNumber(cells As range, number As Integer) range(cells).Select ActiveCell.FormulaR1C1 = number End Sub

Cuando llamo a la subrutina de esta manera:

EnterCellValueMonthNumber ("N23:Q23",1)

Aparece el siguiente mensaje de error:

Compile error Expected: =

No tengo idea de por qué recibo este mensaje. ¿Alguien sabe lo que me estoy perdiendo?


Llamarías al submarino como

EnterCellValueMonthNumber "N23:Q23", 1

Sin corchetes. O

Call EnterCellValueMonthNumber("N23:Q23", 1)

Corchetes, y Call antes.

Además, su Sub está esperando un objeto Range como primer argumento y usted está suministrando una cadena; debe cambiar la firma del subtítulo a:

Sub EnterCellValueMonthNumber(cells As String, number As Integer)

Además, no estoy seguro de lo que está intentando lograr con este código, ya que solo establecerá la celda superior izquierda del rango en 1. ¿Algo así como

Range(cells).Value = number '' Or, if you''re going to be passing in something more complex later... Range(cells).FormulaR1C1 = number

ser más apropiado?

También sería muy cuidadoso de usar Range("...") sin especificar a qué hoja te refieres. Esto actuará en cualquiera de las hojas activas y, por lo tanto, puede causar problemas inesperados, casi siempre prefieren SheetX.Range("...") . De manera similar, para usar .Select , es innecesario y solo puede causarle problemas en el futuro.


Pruebe el siguiente código:

Sub EnterCellValueMonthNumber(ByVal cells As String, number As Integer) Range(cells).Select ActiveCell.FormulaR1C1 = number End Sub