如何基于变量范围表(列和行)迭代公式,直到它返回零?

时间:2018-03-15 06:26:57

标签: excel vba excel-vba

背景:我在Sheet1中有几个表,每个表代表一个公司部门(数据:每个公司Mkt上限的绝对百分比变化)。我的目标是根据每个部门创建一个相关矩阵。

基于这些表,我尝试创建一个VBA函数,该函数可以在可变范围的行和列(nb列= nb行)上迭代公式,直到公式返回零

CODE

Sub Correlation_Matrix_test()

    Range("B4").Select
    ActiveCell.FormulaR1C1 = _
        "=IFERROR(SUMPRODUCT(--(INDIRECT(R2C1&""[""&R3C&""]"")=INDIRECT(R2C1&""[""&RC1&""]"")),--(INDIRECT(R2C1&""[""&R3C&""]"")<>0),--(INDIRECT(R2C1&""[""&RC1&""]"")<>0))/COUNTIFS(INDIRECT(R2C1&""[""&R3C&""]""),""<>0"",INDIRECT(R2C1&""[""&RC1&""]""),""<>0""),0)"
    Range("B4").Select
    Selection.AutoFill Destination:=Range("B4:B126") ' range would be from row B4 to row B?(until formula returns ZERO)

    Range("B4:B126").Select  ' here we would take the range B4:B?

    Selection.AutoFill Destination:=Range("B4:DT126") ' And autofill until the last column of the variable range, B4:??

End Sub

更好地理解问题的小例子 - Sheet2

Small example to better understand the problem - Sheet2

0 个答案:

没有答案