VBA中的间接匹配公式

VBA中的间接匹配公式,vba,excel,Vba,Excel,我很难将我的公式输入VBA 这是公式: =INDEX('Raw G'!1:1048576,MATCH(N5,INDIRECT("'Raw G'!" & ToColletter(MATCH(F4,'Raw G'!2:2,0))&":"&ToColletter(MATCH(F4,'Raw G'!2:2,0))),0),MATCH("Grand Total*",'Raw G'!3:3,0)+1) 我需要它应用于L行下的每个单元格,并符合以下一组标准: Sub csku()

我很难将我的公式输入VBA

这是公式:

=INDEX('Raw G'!1:1048576,MATCH(N5,INDIRECT("'Raw G'!" & ToColletter(MATCH(F4,'Raw G'!2:2,0))&":"&ToColletter(MATCH(F4,'Raw G'!2:2,0))),0),MATCH("Grand Total*",'Raw G'!3:3,0)+1)
我需要它应用于L行下的每个单元格,并符合以下一组标准:

Sub csku()

With Application
    Set SrchRng = .Range(.Cells(4, "N"), .Cells(Rows.Count, "N").End(xlUp))

    For Each cel In SrchRng
        If cel.Value2 > 0 Then
            cel.Offset(0, -2).Value = 

End With

End Sub
但是,我不太确定如何才能做到这一点,因为它在公式中包含多个公式

此外,我使用应用程序将数字转换为列字母:

Public Function ToColletter(Collet)
ToColletter = Split(Cells(1, Collet).Address, "$")(1)
End Function

非常感谢您的帮助

在公式中最好使用索引而不是间接索引

=if(n4>0, index('Raw G'!A:XFC, match(n5, index('Raw G'!A:XFC, 0, match(f4, 'Raw G'!$2:$2, 0)), 0), match("Grand Total*", 'Raw G'!$3:$3, 0)+1), text(,))
然后将其应用于“具有以下一组条件的L行下的每个单元格”


谢谢为我工作!
Sub csku()
    dim f as string

    With worksheets("sheet1")
        with .Range(.Cells(4, "L"), .Cells(Rows.Count, "N").End(xlUp).Offset(0, -2))
                       'double-up quotes within a quoted string
            .formula = "=if(n4>0, index('Raw G'!A:XFC, match(n5, index('Raw G'!A:XFC, 0, match(f4, 'Raw G'!$2:$2, 0)), 0), match(""Grand Total*"", 'Raw G'!$3:$3, 0)+1), text(,))"
            'optionally convert formula results to values
            '.value = .value
        end with
    End With
End Sub