使用VB.NET按天过滤数据库中的列标签

时间:2016-04-13 08:31:06

标签: vb.net excel excel-vba pivot excel-2007 vba

我有提交日期的透视字段代码。

ptField2 = ptTable2.PivotFields("Submitted Date")
    With ptField2
        .Orientation = Excel.XlPivotFieldOrientation.xlColumnField
        .Name = "Submitted Date"
        .Caption = dtIntFrom.Value.ToString("MM-dd-yyyy")
        .ClearAllFilters()
        .PivotFilters.Add(Type:=Excel.XlPivotFilterType.xlCaptionEquals, DataField:="Submitted Date", Value1:=date_stamp)
    End With

这是我的目标日期: 2016年3月15日 - 3月31日

  date_stamp = Format(dtIntFrom.Value(), "m/d/yyyy") '3/15/2016
  date_stamp2 = Format(dtIntTo.Value(), "m/d/yyyy") '3/31/2016

当我运行程序时,它会显示目标日期的所有日期。

enter image description here

我希望每周过滤我选择的目标日期,它必须如下所示:

enter image description here

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

几天后,我已经使用Range.Group Method

找到了答案

另一个错误是我在.xlColumnField之前首先编码.xlDataField。它应该是最后的。

以下示例:

ptField2 = ptTable2.PivotFields("Total Pages")
With ptField2
     .Orientation = Excel.XlPivotFieldOrientation.xlDataField
     .Function = Excel.XlConsolidationFunction.xlSum
     .Name = "Pages"
     .NumberFormat = "#,##0"
End With

ptField2 = ptTable2.PivotFields("Group")
With ptField2
     .Orientation = Excel.XlPivotFieldOrientation.xlRowField
     .Name = "Group"
End With

ptField2 = ptTable2.PivotFields("Submitted Date")
With ptField2
     .Orientation = Excel.XlPivotFieldOrientation.xlColumnField
     .Name = "Submitted Date"
     .DataRange.Cells(1).Group(True, True, 7, New Boolean() {False, False, False, True, False, False, False})
End With