(VB Express レベル: 初級)
私は次のことをしたい、
ワークブック 1
aの列
b
c
d
Workbook2
e の列
へ
g
時間
単一セルへの出力
ae+bf+cg+dh
(出力は Sumproduct です。)
ワークブック 1 には 44 行、ワークブック 2 には 44 行あります。ただし、ワークブック 1 には 3 列、ワークブック 2 には 104 列があります。ワークブック 3 の各列は、ワークブック 2 の 104 列で乗算する必要があります。
以下は、列のすべてのセルに同じ値を書き込む私の努力です。私の理解は、私の for ループがどこかで間違っているということです。しかし、私は何が間違っているのか理解できません。
'link to workbooks
oWB5 = oXL5.Workbooks.Open("D:\1.xlsx")
oWB6 = oXL6.Workbooks.Open("D:\2.xlsx")
oWB7 = oXL7.Workbooks.Open("D:\outputs.xlsx")
'link to worksheets
oSheet5 = oWB5.Worksheets("Inputs")
oSheet6 = oWB6.Worksheets("Coef")
oSheet7 = oWB7.Worksheets("Sheet1")
' ranges to be considerd,
' oWB5 range C22 to C66
' oWB6 range C3 to C47
' oWB7 range C2 to C104 (because there are 104 columns in oWB6)
'multiplication of ranges
For j = 3 To 47
For i = 2 to 104
For k = 2 to 4
For l = 22 to 66
oSheet7.Cells(i, k).Value = (oSheet5.Cells(l, k).value * oSheet6.Cells(j, i+1).value) + (oSheet5.Cells(l+1, k).value * oSheet6.Cells(j + 1, i+1).value)
Next
Next
Next
Next
助けていただければ幸いです。私は今これに2日間苦労しています。