Programación Visual Basic (VBA) para Excel y Análisis ... - TEC-Digital
Programación Visual Basic (VBA) para Excel y Análisis ... - TEC-Digital
Programación Visual Basic (VBA) para Excel y Análisis ... - TEC-Digital
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>VBA</strong> <strong>para</strong> <strong>Excel</strong> M.Sc. Walter Mora F., M.Sc. José Luis Espinoza B. 22<br />
1.5.4 Manejo de rangos<br />
Una rango en <strong>Excel</strong> corresponde a una selección de celdas. Una selección de las celdas de una fila o una columna<br />
se maneja en <strong>Excel</strong> como una matriz de orden 1 × n o de orden n × 1 (un vector). La selección de un bloque<br />
de celdas se maneja como una matriz n × m. Si una celda está en blanco, se lee un cero.<br />
Ejemplo 4<br />
Promedio simple. Consideremos una tabla con 5 notas, todas con igual peso.<br />
Figure 1.22: Promedio simple.<br />
Para calcular el promedio simple, en cada fila, vamos a hacer una macro que recibe un rango, cuenta las notas,<br />
suma y divide entre el número de notas.<br />
Function PromedioSimple(R As Range) As Double ’R es la variable<br />
que recibe el rango<br />
Dim n As Integer<br />
Dim sump As Double<br />
sump = 0<br />
n = R.EntireColumn.Count ’cantidad de notas en el rango<br />
For Each x In R ’suma de las notas<br />
sump = sump + x<br />
Next x<br />
Sume = sump / n ’promedio simple<br />
End Function<br />
En primera celda de la columna Promedio, llamamos a la macro con: PROMEDIO(C52:G52) pues en este caso el<br />
rango es C52:G52.<br />
Ejemplo 5<br />
El Promedio eliminando las dos notas más bajas. En este caso, a un conjunto de notas les calculamos el<br />
promedio simple pero eliminando las dos notas más bajas. El programa PromedioQ suma las n notas de una<br />
fila (rango), localiza la posición (en el vector R) de las dos notas más bajas y luego le resta a la suma estas dos<br />
notas <strong>para</strong> luego dividir entre n − 2. En este caso, el rango R es una matriz 1 × n, o sea, se puede ver como un<br />
vector de n componentes.<br />
Function PromedioQ(R As Range) As Double<br />
Dim n, i, Imin1, Imin2 As Integer