【发布时间】:2018-01-24 01:17:15
【问题描述】:
大家好。我对 VBA 还很陌生,手头有一些问题。 我目前正在自动化我的工作中的报告,其中大部分与过滤数据以显示当月、下个月和接下来的 2 个月有关。
我的问题是:
-
您如何过滤下拉框以取消勾选前几个月、勾选下个月(相对于当前月份)以及勾选接下来的几个月(无需硬编码它会必须在某个月份结束。只需将其编码为提前几个月可用)?例如,我的数据是 2017 年 11 月的数据。我必须取消前几个月的勾选,包括 11 月,然后勾选 2017 年 12 月和接下来的几个月
来自录制的宏:
11 月为当前月份(手动过滤)
ActiveSheet.Range("$A$1:$AY$18103").AutoFilter Field:=37, Operator:= _
xlFilterValues, Criteria2:=Array(0, "10/18/2018", 1, "12/28/2017")
我在不同进程中使用的当前月份代码。我也可以加入这个吗?
ActiveSheet.Range("$A$1:$AY$18103").AutoFilter Field:=36, Operator:=xlAnd, _
Criteria1:=">" & Application.EoMonth(Now, -1), _
Criteria2:="<=" & Application.EoMonth(Now, 0)
与第 1 项类似,取消勾选前几个月,勾选当前月份的第二个月,并勾选接下来的几个月? (例如,我的数据是 2017 年 11 月的数据。我必须取消勾选前几个月,包括 11 月,然后勾选 2018 年 1 月和接下来的几个月)
-
我必须做的一个过程是将公式从单元格复制到左侧,然后将其粘贴到当前单元格。我要做的是先复制左边的单元格,然后使用 Ctrl+Down 转到底行。然后单击右键(返回到原始列),然后再次 Ctrl+Shift+Up 粘贴到整个列。我使用的代码是:
Range(Selection, Selection.End(xlUp)).Select
问题是原始列中的某些单元格已经填满了数据(来自我之前的过程),我必须至少编写 4 次代码才能使单元格到达最上面的单元格。我如何对其进行编码以使其到达顶部(减去带有单元格标题的行),同时注意这些行已被过滤?
【问题讨论】: