gpt4 book ai didi

vba - 美国和英国设置之间奇怪的日期过滤器行为 : VBA

转载 作者:行者123 更新时间:2023-12-02 17:42:20 25 4
gpt4 key购买 nike

我正在将过滤器应用于日期列,并且它在我的计算机上运行良好(美国区域设置)。当我将工作簿发送给英国的用户时,相同的过滤器失败(英国区域设置)。没有错误,过滤器只是失败并且没有过滤行。如果我手动设置 VBA 代码中返回的日期,则过滤器起作用。

'/ ALERT_DATE : named Range containing date. Cell Format is set as date.
'/ Column 5 in wksTemp contains all valid dates in correct format.

'/ Following code works fine in US Regional Settings.
wksTemp.UsedRange.AutoFilter
wksTemp.UsedRange.AutoFilter Field:=5, Criteria1:= _
"<" & wksSettings.Range("ALERT_DATE")

wksTemp.UsedRange.SpecialCells(xlCellTypeVisible).Copy wksDest.Cells(1, 1)
Application.CutCopyMode = False

'/ Same code fails with UK settings.

尝试过,Value2 , Format , DateSerial Nothings 似乎以英国格式过滤行。

在英国设置中,如果我手动设置 "<" & wksSettings.Range("ALERT_DATE") 的值例如28/05/2017在过滤器中,它起作用了。

任何想法。如何纠正这个问题,使其适用于英国和美国?

最佳答案

啊,DateFilter 的日期问题:)

最简单的解决方法是将日期转换为长日期。从 VBA 开始就有效,或者至少我这么认为。

wksSettings.Range("ALERT_DATE") ---->> Clng(wksSettings.Range("ALERT_DATE"))

试试这个:

  wksTemp.UsedRange.AutoFilter
wksTemp.UsedRange.AutoFilter Field:=5, Criteria1:= _
"<" & Clng(wksSettings.Range("ALERT_DATE"))

wksTemp.UsedRange.SpecialCells(xlCellTypeVisible).Copy wksDest.Cells(1, 1)
Application.CutCopyMode = False

未经测试,但应该可以工作。

关于vba - 美国和英国设置之间奇怪的日期过滤器行为 : VBA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43478877/

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