我想在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
答案 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