Once the date filter in column L is applied then J1 counts the number of items visible. 在下面提供的代码中,我正在尝试一个日期循环,在该循环中,我可以返回过去并查看特定的月份。例如,查看我可能正在查看的月份的前一个月,依此类推。
我尝试制作小的子宏,一旦主宏运行完毕,我就会调用这些子宏,但是我无法将它们放在一起,以便依次调用小宏并依次执行。
Option Explicit
Sub trial_trial_Table()
Dim StartDate As Long, EndDate As Long, mois As Long, nextmonth As Long, z As Long, x As Long, i As Long
z = StartDate
StartDate = DateSerial(Year(Date), Month(Date) - 1, 1)
x = EndDate
EndDate = DateSerial(Year(Date), Month(Date) - 0, 0)
z = 1
For z = StartDate - 1 To StartDate
z = z - 1
x = 0
For x = 0 To 12 'EndDate
x = x - 1
StartDate = DateSerial(Year(Date), Month(Date) - 1, 1) 'The first day of the previous month:
EndDate = DateSerial(Year(Date), Month(Date) - 0, 0) 'The last day of the previous month:
Sheets("Essais").Select
ActiveSheet.Range("$A$1:$M$4822").AutoFilter Field:=12, _
Criteria1:=">=" & StartDate, _
Operator:=xlAnd, _
Criteria2:="<=" & EndDate
Next x
Next z
End Sub
我希望宏起作用。如果可以的话,请帮忙。
答案 0 :(得分:0)
不确定,您要完成什么。如果要在另一个子目录中调用“小”子目录,可以使用以下命令调用:
Call NameOfSmallSub()
这样,您可以连续调用任意数量的宏。
一些提示可以使您的代码继续运行:
初始化时,每个long变量的值均为0(Dim命令)。因此,在初始化后立即将StartDate分配给x时,您可以只写“ x = 0”。由于此后您将另一个值设置为x,而没有在中间使用x,因此根本不需要此分配。
此外,当您从数字中减去0时,对它没有影响。因此,与其说“ Month(Date)-0”,不如说是“ Month(Date)”。我不确定,您对日期为“ 0”的DateSerial返回的期望是什么。我建议您调试代码行并观察所有变量以查看实际发生的情况。
您的循环将永远运行,因为您每次都会减小循环变量x。您的循环永远不会那样结束。但是您到底需要什么循环呢?
看来,您对vba脚本并不熟悉。也许即使没有vba脚本,也可以在excel中实现所需的功能?我会问一个新问题,并描述我想要拥有的东西,并寻求实现该目标的好方法。
我希望这会有所帮助。