我正在使用 vb.net winforms 应用程序自动化一些报告。我有一份报告,我需要将日期字段上的过滤器更新为 2 个日期(周一和周日或相关周)。
我通过让用户从 DateTimePicker 中选择结束日期来获取日期dateStatusEnd
当代码开始添加过滤器时,我收到以下错误消息:
这些日期是有效的,因为我错误地认为我以错误的顺序添加了它们,但这给出了一个错误,指出结束日期必须小于开始日期,因此它肯定会将它们读作错误。
有什么想法可以解决这个问题吗?下面的代码片段:
xlSht = aWorkBook.Worksheets("RBA Expiry Dates")
Dim xlPivot As PivotTable = xlSht.PivotTables("PivotTable1")
Dim xlPivotField As PivotField = xlPivot.PivotFields("RBA Expiry Date")
xlPivotField.ClearAllFilters()
If dateStatusEnd.Value.Day = 31 AndAlso dateStatusEnd.Value.Month = 12 And dateStatusEnd.Value.Date.ToString("dddd") <> "Sunday" Then
Dim aDate As Date = dateStatusEnd.Value.Date
Do Until aDate.ToString("dddd") = "Monday"
aDate = aDate.AddDays(-1)
Loop
xlPivotField.PivotFilters.Add2(Type:=XlPivotFilterType.xlDateBetween, Value1:=aDate.ToShortDateString, Value2:=dateStatusEnd.Value.Date.ToShortDateString)
Else
xlPivotField.PivotFilters.Add2(Type:=XlPivotFilterType.xlDateBetween, Value1:=dateStatusEnd.Value.Date.AddDays(-6).Date.ToShortDateString, Value2:=dateStatusEnd.Value.Date.ToShortDateString)
End If