首页 > 解决方案 > 如何使用 VBA 每月/每年应用自动过滤器并根据月/年过滤器在另一个范围内添加值

问题描述

如何使用 VBA 在列中应用过滤器(每月/年),以便与该日期对应的范围将在另一列中接收值为 Month-Yes 的值?

或者在这种情况下,如果名为 CreationDate 的列中的值是 = Jan/2020,那么 Month_Yr 列上的范围将是 01_2020 会更好。

基本 VBA 需要检查 A 列上的日期,以及它是否只在 B 列上写入月份和年份。

我应该使用自动过滤器还是 Vlook?任何想法如何获得我需要的结果?

标签: excelvba

解决方案


根据您的评论,您可以使用

With Sheet1.Range("B2:B" & last_row)
    .Formula = "=TEXT(A2,""m\_yyyy"")"
    ' I suggest you then delete the formulae
    .Value = .Value
End with

请注意,在字符串中添加双引号的方法是使用其中的 2 个(即用另一个双引号转义它),因此该字符串"=TEXT(A2,""m\_yyyy"")"将导致公式 =TEXT(A2,"m\_yyyy")。

另请注意,下划线字符在 excel 数字格式中具有特殊含义,因此,如果您希望它显示在最终字符串中,则需要使用反斜杠对其进行转义。(我知道这在我上面的评论中看起来像是一个错字,但这很重要)


推荐阅读