如何在VBA中实现索引和行功能

时间:2017-11-16 12:55:59

标签: excel-vba vba excel

我想在VBA中写下以下内容:

=INDEX(Sheet1!B$4:B$15;(ROW(A1)-1)/730+1)

我正在尝试:

With Application.WorksheetFunction

 ActiveWorkbook.Worksheets("Some_Sheet").Range("H6") = .Index(ActiveWorkbook.Worksheets("Sheet1").Range("B4:B15")), (Range("A1").Row - 1) / 730 + 1)    

End With

2 个答案:

答案 0 :(得分:2)

尝试ActiveCell.Formula = WorksheetFunction.Index(Range("B$4:B$15"), (Range("A1").Row - 1) / 730 + 1)

答案 1 :(得分:0)

对A1的引用是否应该相对于目标单元格 - 所以你想要为行1-730,731-1460等返回相同的值吗?

如果是这种情况,那么就像:

Function foo(ByRef c As Range)
    With c
        .Value = Worksheets("Sheet1").Range("B4").Offset(Int(.Row / 730), 0).Value
    End With
End Function

用过:

Sub test()
    foo Worksheets("Some_Sheet").Range("H1463")
End Sub