我正在尝试通过使用offset和match从另一个工作表中获取前三个大数据,但是在运行下面的代码后,在单元格中出现了#VALUE错误。我不知道为什么会出现错误以及如何解决。
Sub Dashboard()
Dim i As Integer, a As Integer, j As Integer, sh As Worksheet
Set sh = ThisWorkbook.Sheets("Dashboard")
a = sh.Range("B3", sh.Range("B3").End(xlDown)).Rows.Count
Sheets("Dashboard").Activate
For i = 3 To a
For j = 1 To 3
If i < (a + 1) Then
ref = Sheets("RE_PE_Comdy_FX_IR").Range("A2")
ro = Application.Match(Cells(i, 2), Sheets("RE_PE_Comdy_FX_IR").Range("A3:A15000"), 0)
Sheets("Dashboard").Activate
co = Application.Match(Cells(2, 4),Sheets("RE_PE_Comdy_FX_IR").Range("A1:P1"), 0) - 1
hei = Application.Match(Cells(i, 2), Sheets("RE_PE_Comdy_FX_IR").Range("A3:A15000"), 0)
wid = 1
Cells(i, 4) = Application.Large("Offset(ref, ro, co, hei, wid)", j)
End If
Next j
Next i
End Sub
答案 0 :(得分:0)
使用不同的列来写结果。
For i = 3 To a
For j = 1 To 3
If i < (a + 1) Then
Set ref = Sheets("RE_PE_Comdy_FX_IR").Range("A2")
ro = Application.Match(Cells(i, 2), Sheets("RE_PE_Comdy_FX_IR").Range("A3:A15000"), 0)
Sheets("Dashboard").Activate
co = Application.Match(Cells(2, 4),Sheets("RE_PE_Comdy_FX_IR").Range("A1:P1"), 0) - 1
hei = Application.Match(Cells(i, 2), Sheets("RE_PE_Comdy_FX_IR").Range("A3:A15000"), 0)
wid = 1
'Write to different columns maybe??
Cells(i, 4 + j - 1) = Application.Large(ref.Offset(ro, co).Resize(hei, wid), j)
End If
Next j
Next i