求助,帮忙指导一下解决问题!
vb吧
全部回复
仅看楼主
level 3
mp3_517 楼主
本人初学VB!请帮助解决问题,谢谢!
x代表了多个会员的生日所在的行位,Sheet2.Cells(6, 9)代表了今日日期,目的是筛选出未来七天内过生日的会员,并将会员的生日写入旁侧。下面是我写的宏,运行时,显示“编译错误,无效的next控件变量引用”。应该怎么修改?
Sub 宏1()
Dim k As Date
Dim x, y, t As Integer
k = Sheet2.Cells(x, 9)
If Sheet2.Cells(6, 9) - k <7 Then
Sheet2.Cells(y, 10) = Sheet2.Cells(6, 9) - k
End If
For x = 1 To 5
For y = 1 To 5
Next x
Next y
End Sub
2023年02月20日 11点02分 1
level 15
代码顺序错了,而且也不需要用二重循环(你甚至没有把循环体的语句放进循环当中),给你调整一下:
Sub 宏1()
Dim k As Date
Dim x, t As Integer
For x = 1 To 5
k = Sheet2.Cells(x, 9)
If Sheet2.Cells(6, 9) - k <7 Then
Sheet2.Cells(x, 10) = Sheet2.Cells(6, 9) - k
End If
Next x
End Sub
另外,我感觉你把日期减法写错了,这里的“会员生日”应该是未来的日期吧,应该用未来的日期减过去的日期得到的结果才是正数,否则就变成负数了,也就是应该改成k-Sheet2.Cells(6,9)
2023年02月20日 12点02分 2
level 1
这么简单的Excel问题何必用VBA写
J1 : =DATE(YEAR(TODAY()),MONTH(I1), DAY(I1))-TODAY()
K1 : =IF(J1=0,"生日到了",IF(AND(J1>0,J1<=7),"生日还差" & J1 & "天","还没到生日"))
然后往下托,隐藏J列。如果你今日日期想自己写,TODAY()换成一个你写日期的单元格,用$标注数字行号
2023年02月20日 14点02分 3
level 9
不说内容,单说提示的错误,就像堆栈,先入的要先出,你内层循环是y,next也要是y才行。
2023年02月22日 08点02分 4
1