2016-02-25 30 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 
相關問題