我在Excel中有两个相同大小的范围,我想用vba将它们乘以另一个范围。例如: 范围1:Sheets("A").Range("A1:H200")
范围2:Sheets("B").Range("A1:H200")
然后我需要:将两个范围相乘的最快方法
Sheets("C").Range("A1:H200")= Range 1 * Range 2
即,我需要薄片C中的每个单元是相同的单元在表格A和B
乘法我在Excel中有两个相同大小的范围,我想用vba将它们乘以另一个范围。例如: 范围1:Sheets("A").Range("A1:H200")
范围2:Sheets("B").Range("A1:H200")
然后我需要:将两个范围相乘的最快方法
Sheets("C").Range("A1:H200")= Range 1 * Range 2
即,我需要薄片C中的每个单元是相同的单元在表格A和B
乘法这将做到这一点几乎是立刻:
Sheets("C").Range("A1:H200") = [INDEX(A!A1:H200*B!A1:H200,0)]
如果范围是由vba变量定义的,我该如何使用这段代码? –
我的意思是最后一行由一个vba变量定义('Range(“A1”).End(xlDown).Row') –
表格(“C”)。Range(“A1:H”&lastrow)= Application .Evaluate(“INDEX(A!A1:H”&lastrow&“* B!A1:H”&lastrow&“,0)”)' –
也许最快的是使用Sub来操作C
中的单元格公式。
试试这个,你的想法...
Option Explicit
Sub FillFormula()
Worksheets("C").Range("A1:H200").FormulaR1C1 = "=A!RC*B!RC"
End Sub
'evaluate'可能是最快的,但我不知道XD阵列应该是紧随其后? – findwindow
研究编写公式的R1C1方法 - 简而言之,R1C1将公式*写入相对于它在*中的单元格。这将允许您选择您的范围并为所有单元格输入“相同”公式。 –
您输入2个二维表作为乘法。这可以用多种方式解释。你在谈论矩阵乘法吗?请详细说明您的预期结果。 – nbayly