Excel VBA-数据透视表的更改日期筛选器
我的工作表上有一个数据透视表,我正在尝试添加一个日期筛选器:Excel VBA-数据透视表的更改日期筛选器,excel,vba,date,Excel,Vba,Date,我的工作表上有一个数据透视表,我正在尝试添加一个日期筛选器: Private Sub foo() Dim MyDate MyDate = #1/27/1993# Worksheets("Timeline").PivotTables("PivotTable7").PivotFields("EndDateFormatted").PivotFilters.Add Type:=xlBetween, Value1:=MyDate, Value2:=MyDate End Sub 这会导致“无效过程调用
Private Sub foo()
Dim MyDate
MyDate = #1/27/1993#
Worksheets("Timeline").PivotTables("PivotTable7").PivotFields("EndDateFormatted").PivotFilters.Add Type:=xlBetween, Value1:=MyDate, Value2:=MyDate
End Sub
这会导致“无效过程调用或参数”错误。我做错了什么
更新:
thx luke_t,现在我知道我必须使用xlDateBetween。
现在,我的代码如下所示:
Private Sub foo()
Dim d As Date
Dim dd As Date
d = DateSerial(2016, 1, 1)
dd = DateSerial(2016, 1, 2)
Worksheets("Timeline").PivotTables("PivotTable7").PivotFields("EndDateFormatted").PivotFilters.Add Type:=xlDateBetween, Value1:=d, Value2:=dd
End Sub
现在它显示“您输入的日期无效”(1004) 您需要将
xlDateBetween
传递到PivotFilters.Add
方法的Type:=
参数中
可以传递到类型参数中的常量名称
使用带有类型:=
参数的字符串。见下文
Private Sub foo()
Dim d As String
d = "01/01/2016"
Worksheets("Timeline").PivotTables("PivotTable7").PivotFields("EndDateFormatted").PivotFilters.Add Type:=xlDateBetween, Value1:=d, Value2:=d
End Sub
您需要将
xlDateBetween
传递到PivotFilters.Add
方法的Type:=
参数中
可以传递到类型参数中的常量名称
使用带有类型:=
参数的字符串。见下文
Private Sub foo()
Dim d As String
d = "01/01/2016"
Worksheets("Timeline").PivotTables("PivotTable7").PivotFields("EndDateFormatted").PivotFilters.Add Type:=xlDateBetween, Value1:=d, Value2:=d
End Sub
事实上,这肯定是问题的原因之一。但现在我有一个错误1004(无效日期)。我已经用新代码更新了我的问题。@ThomasMX-我认为您应该将此标记为已回答,因为它修复了基于“无效过程调用或参数”错误的原始问题。。日期问题几乎是一个单独的问题——特别是因为你更改了原始代码。在我的另一个问题中,我问了1004的原因,得到了“重复”。所以我必须去掉绿色的记号@ThomasMX将日期变量设置为字符串:
Dim MyDate as string
,然后MyDate=“27/01/1993”
。请确保使用与本地设置/数据相关的正确日期格式。好吧,关于原始问题(这一个),我们仍然没有找到100%正确的代码,因此我认为最好是将这一个打开,另一个关闭。我稍后会检查您的建议,并尽快给您反馈。事实上,这一定是问题的原因之一。但现在我有一个错误1004(无效日期)。我已经用新代码更新了我的问题。@ThomasMX-我认为您应该将此标记为已回答,因为它修复了基于“无效过程调用或参数”错误的原始问题。。日期问题几乎是一个单独的问题——特别是因为你更改了原始代码。在我的另一个问题中,我问了1004的原因,得到了“重复”。所以我必须去掉绿色的记号@ThomasMX将日期变量设置为字符串:Dim MyDate as string
,然后MyDate=“27/01/1993”
。请确保使用与本地设置/数据相关的正确日期格式。好吧,关于原始问题(这一个),我们仍然没有找到100%正确的代码,因此我认为最好是将这一个打开,另一个关闭。我稍后会检查你的建议,并尽快给你反馈。