
Ecco un embrione di codice (che ovviamente non funziona):
Option Explicit
Option Base 1
Sub CalcoloCostoProdotto()
Dim riga1, colonna1 As Integer
Dim riga2, colonna2 As Integer
Dim a, b As Variant
Dim matrice(6, 6)
For riga1 = 21 To 26
For colonna1 = 3 To 8
a = Range(Sheets("sheet1").Cells(riga1, colonna2).Select)
For riga2 = 31 To 36
For colonna2 = 3 To 8
b = Range(Sheets("sheet1").Cells(riga1, colonna2).Select)
matrice(6, 6) = a * b
Next
Next
Next
Next
End Sub
|
Option Explicit
Option Base 1
Sub CalcoloCostoProdotto()
Dim varA(1 To 6, 1 To 6), varB(1 To 6, 1 To 6) As Variant 'due matrici già esistenti
Dim varC(1 To 6, 1 To 6) As Variant 'questa la calcoliamo
Dim cella As Range
Dim x As Long, y As Long
'cicliamo il nome del foglio "matA" ed alimentiamo la prima matrice
For Each cella In [matA]
x = cella.Column
y = cella.Row - 1 'contando le intestazioni in riga 1
varA(y, x) = cella.Value
Next cella
'stesso ciclo per il nome "MatB"
For Each cella In [matB]
x = cella.Column
y = cella.Row - 11 'contando le intestazioni in riga 1
varB(y, x) = cella.Value
Next cella
'ora alimentiamo la terza matrice come prodotto delle precedenti
For x = 1 To 6
For y = 1 To 6
varC(y, x) = varA(y, x) * varB(y, x)
Next y
Next x
[mATC].Value = varC
End Sub |
Sub CalcoloCostoProdotto2()
Dim varA As Variant, varB As Variant 'due matrici già esistenti
Dim varC As Variant 'questa la calcoliamo
Dim x As Long, y As Long
varA = Range("A2:F7")
varB = Range("A12:F17")
varC = varA 'tanto i valori verranno riscritti
'ora alimentiamo la terza matrice come prodotto delle precedenti
For x = 1 To 6
For y = 1 To 6
varC(y, x) = varA(y, x) * varB(y, x)
Next y
Next x
Range("$I$2:$N$7").Value = varC
End Sub |
