【发布时间】:2016-05-25 00:52:31
【问题描述】:
我正在尝试执行一个操作来查看范围内的日期 (dateRng) 是否小于今天的日期,如果是,则执行 for 循环以隐藏列中包含值的行为零。 (我正在还清贷款,并且每个月我都希望它隐藏所有已还清的贷款。)月份是跨列的,贷款是在行中的。贷款余额为 (i, j)。
问题在于它永远不会退出 for 循环以返回并检查每个新的“j”(列)之后的日期。它只是停留在 for 循环中。我尝试过中断、退出、继续等。似乎没有一个工作,至少在我放置它们的地方。如何让它检查日期,与“今天”进行比较,然后运行 for 循环检查列中的每个单元格,然后再转到第 2 列,检查日期并执行相同的 for 循环。
最好让它是动态的,但这不是必需的,因为每个月我都可以更改代码中的范围。这仅限于我个人使用。任何帮助表示赞赏。谢谢你。
Sub hidePaid()
Dim day As Range, loanRng As Range, loanSum As Worksheet, dateRng As Range, cel2 As Range, i As Long, j As Long, col As Range
Set loanSum = ThisWorkbook.Worksheets("Loan Sum")
loanSum.Activate
Set dateRng = ActiveSheet.Range("D2:R2")
Set loanRng = ActiveSheet.Range("D4:R16")
For Each day In dateRng
If day.Value < Date Then
For j = 1 To loanRng.Columns.Count
For i = 1 To loanRng.Rows.Count
If loanRng.Cells(i, j).Value < 1 Then
loanRng.Cells(i, j).EntireRow.Hidden = True
End If
Next i
Next j
End If
Next
End sub
【问题讨论】:
标签: vba loops if-statement for-loop exit