我最近在学VBA,刚写了个程序,是按时提醒工作的,调试提示next没有for...
发布网友
发布时间:2024-08-16 11:58
我来回答
共2个回答
热心网友
时间:2024-08-17 04:33
我这样修改的,你看看:
Sub WorkRemind()
Dim i As Integer, rng As Range, datee As Range, j As Integer
datee = Date
On Error Resume Next
For i = 3 To Sheets("未完成工作").UsedRange.Rows.Count '遍历“未完成工作”的已用区域行
rng = Cells(i, 2)
If rng < datee Then
For j = 3 To Sheets("已完成工作").UsedRange.Rows.Count '如果标记时间小于现在时间,将其移动到“已完成工作”
If Cells(j, 2) = "" Then
Sheets("未完成工作").Select
Range("cells(i,2)", Cells(ActiveSheet.UsedRange.Columns.Count)).Select
Selection.Cut
Sheets("已完成工作").Select
Cells(j, 2).Select
ActiveSheet.Paste
Sheets("未完成工作").Select
Rows("i:i").Select
Selection.Delete Shift:=xlUp
Else
End If
Next
ElseIf rng = datee Then
Call WorkMention '用workMention程序执行提醒
Else
End If
Next
End Sub
热心网友
时间:2024-08-17 04:31
你的If应该对应End If,而不是Else
另外 If rng < datee Then 这句也没有找到对应的End If
写代码一定要保证结构的完整
Sub End Sub
If End If
For Next
Do Loop 都必须一一对应,任何语言都是如此,否则编译器无法了解代码的意思