我一直在研究VBA宏,它接受车辆服务,数据输入页面的MOT日期将它们插入另一张纸上的新行,并在我输入的设定间隔时间内计算未来的服务日期。这一切都很好,它只是我遇到麻烦的下一部分。然后,我需要将这些日期添加到日程表中。
我尝试过设置嵌套的Do While
循环,但我无法使其正常工作。我已经做了一个简单的例子,说明了我要做的事情(链接如下)。
红色是手动输入的数据。黄色是第一个宏产品,新行包含复制日期,橙色计算未来日期。绿色是插入的新行(我必须这样做)但是我需要将符号插入到新行中。
这是我从数据库中将服务日期输入计划的基本代码。
x = 1
y = x + 1
z = 16
'my data starts in C6R16 and I have 5 dates (hence to 21)
Do While z < 21
'Have a shedule for the whole year so 53.
Do While x < 53
'If functions to locate which week the event is located
If Worksheets("Dates Input").Cells(6, z).Value > Worksheets("Maintenance Shedule").Cells(3, x) Then
If Worksheets("Dates Input").Cells(6, z).Value < Worksheets("Maintenance Shedule").Cells(3, y) Then
'Quick location of the lowest empy cell. The others will be full of data from prevous entries.
Range("F9:F10").Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Select
Loop
'Move my active cell to the correct place
ActiveCell.Offset(-1, (3 + x)).Select
ActiveCell = "/"
Else
End If
'Move to the next set of dates in shedule
x = x + 1
Loop
'move to next service date
z = z + 1
Loop
除此之外,我需要添加(我假设)一个If
语句来检查同一周内是否有MOT(M)和服务(/),以便一个人不删除另一个
非常感谢任何指针和帮助。
答案 0 :(得分:0)
x和z是一个计数器。 我建议使用
For x = 1 To 21
Next
代替。这似乎不是你的问题。 <击>的击>
<击>Do While Not IsEmpty(~~~~~~)
实际上意味着在单元格为空时执行。 击>