(VB Express 级别:初级)
我想做以下,
工作簿 1
a中的一列
b
C
d
Workbook2
e 中的一列
F
G
H
输出到单个单元格
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
帮助将不胜感激。我现在为此苦苦挣扎了两天。