2016-02-25 31 views
0

我在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

乘法
+1

'evaluate'可能是最快的,但我不知道XD阵列应该是紧随其后? – findwindow

+1

研究编写公式的R1C1方法 - 简而言之,R1C1将公式*写入相对于它在*中的单元格。这将允许您选择您的范围并为所有单元格输入“相同”公式。 –

+1

您输入2个二维表作为乘法。这可以用多种方式解释。你在谈论矩阵乘法吗?请详细说明您的预期结果。 – nbayly

回答

2

这将做到这一点几乎是立刻:

Sheets("C").Range("A1:H200") = [INDEX(A!A1:H200*B!A1:H200,0)] 
+0

如果范围是由vba变量定义的,我该如何使用这段代码? –

+0

我的意思是最后一行由一个vba变量定义('Range(“A1”).End(xlDown).Row') –

+0

表格(“C”)。Range(“A1:H”&lastrow)= Application .Evaluate(“INDEX(A!A1:H”&lastrow&“* B!A1:H”&lastrow&“,0)”)' –

2

也许最快的是使用Sub来操作C中的单元格公式。

试试这个,你的想法...

Option Explicit 

Sub FillFormula() 
    Worksheets("C").Range("A1:H200").FormulaR1C1 = "=A!RC*B!RC" 
End Sub 
相关问题