excel vba 代码

来源:百度知道 编辑:UC知道 时间:2024/06/15 09:52:56
Private Sub Worksheet_Activate()
Dim i As Integer, j As Integer, k As Integer
j = 200
For i = 2 To j
If Cells(i, 3) <> "" And Cells(i, 2) <> "" And _
Cells(i, 3) - Now <= 15 And Cells(i, 3) >= 0 Then
k = Cells(i, 3) - Now
MsgBox Cells(i, 1) & ": 您的合同还有" & k & "天就到期了!" _
& Chr(13) & "请尽快续约!"
End If
Next i
End Sub
A列为姓名 B列为合同起始日期 C列为合同到期日期
改为
C列为姓名 E列为合同起始日期 F列为合同到期日期
怎么改谢谢
不行用不了.
If Cells(i, 6) <> "" And Cells(i, 5) <> "" And _
Cells(i, 6) - Now <= 15 And Cells(i, 6) >= 0 Then
提示类型不匹配,怎么回事??

这下好了。为什么呢?能否解释一下 谢谢
另外还有http://zhidao.baidu.com/question/65722100.html不用宏更好简单点好

原公式可以运行,改了一下就报错,代码是对的为什么还会报错呢?学习

Private Sub Worksheet_Activate()
Dim i As Integer, j As Integer, k As Integer
j = 200
For i = 2 To j
If Cells(i, 6) <> "" And Cells(i, 5) <> "" And _
Cells(i, 6) - Now <= 15 And Cells(i, 6) >= 0 Then
k = Cells(i, 6) - Now
MsgBox Cells(i, 3) & ": 您的合同还有" & k & "天就到期了!" _
& Chr(13) & "请尽快续约!"
End If
Next i
End Sub
------------------------------------------------------
cells(i,1)这是A列
cells(i,2)这是B列
cells(i,3)这是C列

cells(i,3)这是C列
cells(i,5)这是E列
cells(i,6)这是F列

我是按你的要求改的,怎么会不对呢,你好好看看
----------------------------------
我的没有出现你说的问题,要不你加上这一句On Error Resume Next试试
Private Sub Worksheet_Activate()
On Error Resume Next
Dim i As Integer, j As Integer, k As Integer
j = 200
For i = 2 To j
If Cells(i, 6) <> "" And Cells(i, 5) <> ""