En el siguiente procedimiento se ingresa datos de dos maneras a las celdas de una determinada hoja del libro abierto que se le activa, se suma de tres maneras. La primera , en B8 en la cual no se suma como fórmula, la segunda y tercera en B7 y B9, en las cuales se graba como fórmula, de dos maneras diferentes. Luego se copia la fórmula ingresada en B7 hacia el rango C7:D7 en el cual se pega como fórmula.
La notación: RC hace referencia a la fila y columna seleccionada; es decir, a la celda que en ese momento es activa.
La notación R[ x]C[y] indica que en la fórmula donde se la está usando, se hace referencia a "x" filas más abajo de la fila activa y "y" columnas a la derecha de la columna activa.
La notación: R[-x]C[-y] hace referencia a la celda "x" filas arriba de la fila activa y "y" columnas a la izquierda de la columna activa.
En el procedimiento hemos colocado comentarios y mensajes que se emiten y que nos releva de mayores comentarios de lo que hace el procedimiento:
Sub Rangos02()
Workbooks("MisMacros03.xlsm").Activate
Worksheets(1).Activate
' Guardamos su nombre
xHoja = ActiveSheet.Name
' Añadimos 3 nuevas hojas
Worksheets.Add
Worksheets.Add
Worksheets.Add
uHoja = ActiveSheet.Name
MsgBox "Primera hoja: " + xHoja + Chr(13) + "Ultima hoja: " + uHoja
' Activamos la hoja inicial
Worksheets(xHoja).Select
' Vamos a ingresar un título en la celda B2
Range("B2") = "Aprendiendo Excel para terminar en formularios"
' Vemos el resultado
MsgBox " "
' Ahora vamos a ingresar 120 en B5 y 380 en B6
Range("B5") = 120
Range("B6") = 380
MsgBox " "
'
' En lugar de usar range, podemos usar Cells, con notación de matriz
' Por ejemplo: Range("A2") es Cells(2,1); Range("E12") es Cells(12,5)
' La ventaja en el uso de Cells es la facilidad de hacer referencia a celdas variables
' Ingresemos dos números cualquiera desde el teclado hacia C5 y C6
Cells(5, 3) = Val(InputBox("Valor para C5"))
Cells(6, 3) = Val(InputBox("Valor para C6"))
'
' Vamos a sumar B5 con B6 y dejamos el resultado en B8
Range("B8") = Range("B5") + Range("B6")
MsgBox " "
' Como se puede apreciar, la celda activa es B8
' Esta celda contiene 500 y no es una fórmula
' Si se desea que la suma sea una fórmula, debemos usar la siguiente forma
Range("B7") = "=Sum(B5:B6)"
' Otra forma de ingresar fórmula es usando la notación RC (fila y columna)
' R[n]C[-p] significa que se hace referencia a la fila n filas abajo de la celda activa
' y p columnas a la izquierda de la celda activa
' CR hace referencia a la celda activa: R[-2]C referencia a la celda 2 filas arriba en la misma columna
' Luego si queremos que haya una fórmula en B9, en ella debemos ingresar:
Range("B9") = "=R[-2]C+R[-1]C"
MsgBox " "
' Vaya al Excel y ve el contenido de B7, B8 y B8 en el lado izquierdo de la barra de fórmulas
' Ahora ingresaremos nuevos datos en E5 y E6
Range("D5") = Val(InputBox("Valor para D5"))
Range("D6") = Val(InputBox("Valor para D6"))
' Para sumar estas celdas vamos a copiar la fórmula de B7 hacia D7 y D7
' Cómo se copia?
Range("B7").Copy
' Ahora seleccionamos E7 y pegamos lo copiado
' Cómo se pega?
Range("C7:D7").PasteSpecial
End Sub
En la siguiente imagen se tiene una parte de este procedimiento.
Guarde su libro MisMacros03.xlsm. En la siguiente sesión haremos uso de otros ejemplos con el objeto RANGO
haga clic aquí