【问题标题】:Filter dates after or equal via VBA通过 VBA 过滤或等于之后的日期
【发布时间】:2014-03-14 12:16:23
【问题描述】:

我的宏有问题。我需要显示定义日期之后或等于定义日期的日期。但是这个宏不输出任何东西。

日期设置为文本,所以我首先将它们的数字格式更改为yyyy/mm/dd,然后使用“/”的查找和替换将其切换为实际日期。不知道为什么它不起作用。

我的代码:

Columns("V:V").Select
Selection.NumberFormat = "dd.mm.yyyy;@"
Selection.Replace What:="/", Replacement:="/", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=True

.Range("$A$1", "$AF$" & Last_Row).AutoFilter Field:=22, Criteria1:=">=" & CDate("2014/02/27"), Operator:=xlAnd

【问题讨论】:

  • 你确定底层是从字符串开始的吗?您确定前三行代码将这些字符串转换为真实日期吗?

标签: excel vba date equals autofilter


【解决方案1】:

AFAIK,在 VBA 中,您必须始终使用美式日期,记住日期分隔符是 #。这意味着类似:

Criteria:=">=#02/27/2014#"  

或使用计算标准:

Criteria:=">=" & Format(myDate, "\#mm\/dd\/yyyy\#")

(格式字符串中的反斜杠确保下一个字符被乱码使用)

【讨论】:

  • 感谢您的回复,但这不是解决方案。 Excel 正在讲述我喜欢的日期格式。我不知道为什么宏过滤空白。我试着录制宏,代码和我一样。奇怪
猜你喜欢
  • 2021-08-09
  • 2018-08-06
  • 1970-01-01
  • 2014-06-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-01
  • 2017-04-10
  • 1970-01-01
相关资源
最近更新 更多