gpt4 book ai didi

excel - 自动筛选日期时间值 - 本地小数点问题

转载 作者:行者123 更新时间:2023-12-04 13:57:53 24 4
gpt4 key购买 nike

背景

当我试图解决 problem对于另一个用户,我似乎遇到了本地问题。

想象一些非常简单的示例数据(真实的日期时间值):

| DateTimeVals   |
|----------------|
| 1-1-2019 01:00 |
| 2-1-2019 01:00 |
| 3-1-2019 01:00 |
| 4-1-2019 01:00 |
| 5-1-2019 01:00 |

向您展示手头的问题不需要更复杂。假设我们想要过滤 3-1-2019 01:00 (1 月 3 日)。只需使用:
Range("A1").AutoFilter Field:=1, Criteria1:="3-1-2019 01:00"

工作得很好,硬编码的字符串变量确实有效,但我想到了对真实数值进行更动态过滤的方法,如下所示。

代码
Sub test()

Dim SearchNum As Double: SearchNum = DateValue("3-1-2019") + TimeValue("1:00")
Range("A1").AutoFilter Field:=1, Criteria1:=">=" & SearchNum, Operator:=xlAnd, Criteria2:="<=" & SearchNum

End Sub

通过 WATCHES 密切关注此变量显示以下内容:

enter image description here

但应用的过滤器显示 0 个结果:

enter image description here

这是奇怪的部分,应用的过滤器告诉我,我显然在没有小数点逗号的完整值之间进行了过滤。

enter image description here

手动将逗号添加到此数字会使数字变成格式化的日期/时间值。但没有显示结果。

解决方法

我使用以下代码找到了解决方法:
Sub test()

Dim str As String: str = DateSerial(2019, 1, 3) & " " & Format(TimeSerial(1, 0, 0), "hh:mm")
Range("A1").AutoFilter Field:=1, Criteria1:=str

End Sub

问题

虽然我确实读到了 MS 可能如何忽略了 AutoFilter ,我认为我描述的问题必须与本地设置有关。怎么会 VBA将标准作为一个整数插入?以及如何避免?除了我的解决方法(或帮助列)之外,还有其他方法吗?

注:
  • 通过手动插入逗号更改长数字会更改正确日期/时间格式值中的值。
  • 使用 TimeValue容易出现浮点错误,如 1:00小数点比显示的小数点多得多。在字符串变量中插入完整的数值解决了逗号的消失并显示了格式化的日期/时间值,但是没有显示结果。
  • 最佳答案

    你试过ROUND()先给变量?
    由于您不需要过滤器中的秒数,您可以通过四舍五入来解决问题,这可能会为在过滤器中查找提供“精确”值。

    关于excel - 自动筛选日期时间值 - 本地小数点问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58199518/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com