【发布时间】:2017-01-16 20:25:24
【问题描述】:
我对 VBA 很陌生。我将解释我的项目。
我有一个 Excel 工作表,其中包含许多要过滤的信息。目前我的代码如下所示:
With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields( _
"CREATION_DATE")
.Orientation = xlPageField
.Position = 1
End With
ActiveSheet.PivotTables("Tableau croisé dynamique2").AddDataField ActiveSheet. _
PivotTables("Tableau croisé dynamique2").PivotFields("AMOUNT"), _
"Nombre de AMOUNT", xlCount
With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("STATUS")
.Orientation = xlRowField
.Position = 1
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields( _
"VENDOR_NAME")
.Orientation = xlRowField
.Position = 2
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields( _
"INVOICE_NUM")
.Orientation = xlRowField
.Position = 3
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields( _
"Nombre de AMOUNT")
.Caption = "Somme de AMOUNT"
.Function = xlSum
End With
ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields( _
"CREATION_DATE").CurrentPage = "08/09/2016"
此代码用于提取以过滤日期为 08/09/2016。 现在,我想让数据透视表在启动代码之前在单元格中获取此日期。
但我不想每次都进入代码来更改我想要的日期。
我想要这样的东西: 例如:我在单元格“A1”中写“09/09/2016”
ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields( _
"CREATION_DATE").CurrentPage = "A1"
但是我遇到了调试错误。
【问题讨论】:
-
.CurrentPage = Range("A1").Value2...您可能需要在其周围加上CDate()。 -
感谢您的回复,但它似乎不起作用。将 Cdate() 包裹起来是什么意思? ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields(_"CREATION_DATE").CurrentPage = Range(CDate("'Sheet_date'!A1")).Value2
-
Scott 说如果
... .CurrentPage = Range("A1").Value2不起作用,请尝试使用... .CurrentPage = CDate(Range("A1").Value2)。 (CDate 将值转换为日期。)但它实际上可能需要一个字符串,因此,如果 Scott 的建议都不起作用,请尝试... .CurrentPage = Format(CDate(Range("A1").Value2),"dd/mm/yyyy")(或“mm/dd/yyyy” - 取决于该日期的格式)中)。 -
@Thistlepower 试试我下面答案中的代码,如果它有效,请告诉我
-
谢谢!此代码有效! .CurrentPage = Format(CDate(Range("A1").Value2),"dd/mm/yyyy")