Вы находитесь на странице: 1из 5

Array.

xls

Manejo de Matrices

91 26 79 38 29 92 63

56 41 2,296
69 44 3,036
91 98 8,918 Sub Array1()
83 94 7,802 'Declarar una matriz de tamaño 10
2 1 2 Dim x(1 To 10) As Double
54 16 864 Dim i As Byte
92 21 1,932 'Calcular valores aleatorios
43 74 3,182 For i = 1 To 10
68 19 1,292 x(i) = Round(Rnd() * 100, 0)
50 58 2,900 'Los valores aleatorios se calculan usando formulas VBA
Next i
608 466 32,224 'Transferir el contenido de la matriz a una fila
32,224 Range(Cells(5, 2), Cells(5, 11)).FormulaArray = x
32,224 End Sub
24,793
32,224 Sub Array2() 'Para una matriz verticar usando dos dimensi
'Declarar una matriz de 10 filas y una columna
Dim x(1 To 10, 1 To 1) As Double
Dim i As Byte
'Calcular valores aleatorios
For i = 1 To 10
x(i, 1) = Round(Rnd() * 100, 0)
Next i
'Transferir el contenido de la matriz a una columna
Range(Cells(7, 2), Cells(16, 2)).FormulaArray = x
End Sub

Sub Array3()
'Calcular valores aleatorios
'En este caso, los valores aleatorios se calculan usando form
Range("C7:C16").FormulaArray = "=Round(Rand() * 100, 0)"
'Vea la diferencia entre Rnd (del caso anterior) y Rand.
'Una es una fórmula VBA la otra es una fórmula Excel en ing
End Sub

Sub Array4()
Dim Total As Double
Dim una As Range
Dim otra As Range
Set una = Range("B7:B16")
Set otra = Range("C7:C16")
Range("B18").FormulaArray = "=SUM(B7:B16)"
Range("C18").FormulaArray = "=SUM(C7:C16)"
Range("D7:D16").FormulaArray = "=(B7:B16*C7:C16)"
'Calculemos lo mismo que daría la función SUMAPRODUC
Range("D18").FormulaArray = "=SUM(B7:B16*C7:C16)"
'El mismo cálculo que antes pero usando el sistema RC (Ro
Range("D19").FormulaArray = "=SUM(R7C2:R16C2*R7C3:
'Range("D20").Function = "Sum(2,3)"
Total = Application.WorksheetFunction.SumProduct(una, ot
Range("D21") = Total
End Sub
63 43 10

Sub sumado()
'Programa que llama a una fución a la que pasa como argumentos los valores
Dim a(1 To 3) As Integer
a(1) = 2
a(2) = 7
a(3) = 1
MsgBox (sumados(a))
se calculan usando formulas VBA End Sub

la matriz a una fila Function sumados(a() As Integer) As Integer


, 11)).FormulaArray = x Dim i As Integer
For i = 1 To UBound(a) 'UBound devuelve el mayor subíndice de la matriz
sumados = sumados + a(i)
atriz verticar usando dos dimensiones Next
filas y una columna End Function

Sub Macro1()
' Creada con grabadora
Range("D20").Select
ActiveCell.FormulaR1C1 = _
"=SUMPRODUCT(R[-13]C[-2]:R[-4]C[-2],R[-13]C[-1]:R[-4]C[-1])"
a matriz a una columna End Sub
, 2)).FormulaArray = x
Sub Macro2()
'Nombramos los rangos
ActiveWorkbook.Names.Add Name:="una", RefersToR1C1:="=Hoja1!R7C2
ActiveWorkbook.Names.Add Name:="otra", RefersToR1C1:="=Hoja1!R7C3
leatorios se calculan usando formulas Excel 'Se inserta la fórmula SUMAPRODUCTO usando como argumentos los ran
Array = "=Round(Rand() * 100, 0)" Range("D22").Select
d (del caso anterior) y Rand. ActiveCell.FormulaR1C1 = "=SUMPRODUCT(una,otra)"
a otra es una fórmula Excel en inglés Range("D23").Select
End Sub

ay = "=SUM(B7:B16)"
ay = "=SUM(C7:C16)"
Array = "=(B7:B16*C7:C16)"
daría la función SUMAPRODUCTO
ay = "=SUM(B7:B16*C7:C16)"
es pero usando el sistema RC (Row Column)
ay = "=SUM(R7C2:R16C2*R7C3:R16C3)"

heetFunction.SumProduct(una, otra)
pasa como argumentos los valores de una matriz

ve el mayor subíndice de la matriz

[-2],R[-13]C[-1]:R[-4]C[-1])"

na", RefersToR1C1:="=Hoja1!R7C2:R16C2"
ra", RefersToR1C1:="=Hoja1!R7C3:R16C3"
O usando como argumentos los rangos creados antes

DUCT(una,otra)"

Вам также может понравиться