VBA:循环不包括最后2行

问题:我有一个代码,它应该做的一切,只是它不完成它的工作。 每当我运行这个代码,似乎最后2行不包括在内。

码:

Sub List() Dim sStDev As Worksheet: Set sStDev = Sheets("StDev") Dim sResult As Worksheet: Set sResult = Sheets("Large") Dim sQuart As Worksheet: Set sQuart = Sheets("Quintile") Dim sReturn As Worksheet: Set sReturn = Sheets("Return") Dim j As Long Const colDate As Long = 1 Const rowStDevFirst As Long = 2 Const rowResultFirst As Long = 2 Dim LastRow As Long LastRow = sReturn.Cells(Rows.Count, "A").End(xlUp).Row Dim rowResult As Long: rowResult = rowResultFirst j = 2 Dim i As Long: For i = rowStDevFirst To LastRow Dim colResult As Long: colResult = 1 sResult.Cells(rowResult, colResult).Value = sStDev.Cells(i, colDate).Value colResult = colResult + 1 For j = 1 To 792 If sStDev.Cells(i, j).Value >= sQuart.Range("F2").Offset(i, 0) And sStDev.Cells(i, j).Value <= sQuart.Range("G2").Offset(i, 0) Then sResult.Cells(rowResult, colResult).Value = sReturn.Cells(i, j).Value colResult = colResult + 1 End If Next j rowResult = rowResult + 1 Next i MsgBox "Listed" End Sub 

我怎样才能使这个代码包括我的最后两行呢?

先谢谢你!

文件: 文件

正如我所看到的,您尝试使用返回表中的这些值来填写大表格,其中StDev中的相应值在Quintile中的每行中的F和G值之间。

没关系,但是我们不应该抵消Quintile的价值,因为即使是第二排,你也得到了Quintile!F4和G4而不是F2和G2。

所以要修复它,你应该改变sQuart.Range("F2").Offset(i, 0)sQuart.Range("F2").Offset(i-2, 0)

和列G相同: Offset(i, 0)应该是Offset(i-2, 0)