excel - 使用 VBA 在数据透视表中的两个日期之间进行过滤。英国到美国日期格式问题

标签 excel vba date format pivot-table

我已经找到了解决此问题的方法,但如果有人有更干净的方法来做到这一点,我会很感兴趣/感激不已。

我的电子表格上有两个框,分别称为 DateFrom 和 DateTo,用于与数据透视表中的日期过滤器一起使用。两者的格式均为 DD/MM/YYYY。输入表中的数据也采用这种格式。数据透视表还以相同的格式返回日期。我的所有设置都是英国英语,我在另一台机器上尝试过,得到了相同的结果。

然后,我使用以下代码将数据输入数据透视表:

ActiveSheet.PivotTables("Pivot").PivotFields("Date").PivotFilters. _
    Add Type:=xlDateBetween, Value1:=Range("DateFrom").Value, Value2:=Range("DateTo").Value

代码将两个单元格作为字符串读取,然后将其应用到数据透视表,就像它们是美国格式 (MM/DD/YYYY) 一样。可笑!

这就是我解决这个问题的方法:

我还有两个单元格以数字格式查看这两个单元格,并将代码瞄准这两个单元格。不确定你们中的任何人,但我很难在脑海中将任何日期转换为数字......!

如果您对这种彻底的疯狂有一个简化的解决方案和/或解释,我将非常感激!

最佳答案

确实,这很奇怪。我已使用 Excel 2007 和德语区域设置重现了您的问题。

但是,当使用 CLng 将日期值转换为 Long 时,一切正常:

ActiveSheet.PivotTables("Pivot").PivotFields("Date").PivotFilters. _
Add Type:=xlDateBetween, Value1:=CLng(Range("DateFrom").Value), Value2:=CLng(Range("DateTo").Value)

关于excel - 使用 VBA 在数据透视表中的两个日期之间进行过滤。英国到美国日期格式问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22938973/

相关文章:

vba - 使用VBA将图片插入Excel并保持宽高比不超过尺寸

vba - 检查命名表是否存在 VBA Excel 2007

arrays - 使用 Replace 方法在 Excel VBA 中输入长数组公式作为解决方法

excel - 使用Excel,如何查找层次结构中的父单元格?

vba - 使用 Excel VBA 从随机单元格中删除重复项

google-maps - 用于时间和距离数据的 Google Maps API (Access/VBA)

date - 如何在接下来的几周内使用Rust进行打印?

c# - 查找年日期的 dd/mm 格式的算法?

android - 是否可以在 android studio 项目中找出最后修改日期?

ms-access - 以编程方式导入 Excel 数据以 Access 具有列映射的表