私は、CSVをつかむことからExcelシートを作成し、いくつかの行と要約値とピボットテーブルを作成するために、PowerShellスクリプトを書きました。私はまた、フィルタフィールドを追加することができますが、私は正常に行うことができませんフィルタフィールドにフィルタリングする必要がある値を教えています。PowerShellのエクセルPivotFilters.Add
PivotFilters.AddとPivotFilters.Add2方法は、常に「値が予想される範囲内に収まっていません」というエラーをスローします。
は、ここでは、コードの関連部分だ:「値が予想される範囲内に収まっていない」
# Add PivotTable
$WS2 = $WBK1.Worksheets.Add()
$WS2.Name = "PivotTable"
$xlPivotTableVersion15 = 5 # Excel 2013
$xlPivotTableVersion12 = 3 # Excel 2007
$xlDescending = 2
$xlDatabase = 1 # this just means local sheet data
$xlHidden = 0
$xlRowField = 1
$xlColumnField = 2
$xlFilterField = 3
$xlDataField = 4
$xlSum = -4157
$xlAverage = -4106
$xlCount = -4112
$xlRight = -4152
$pivotRange = $WS1.UsedRange
$PivotTable = $WBK1.PivotCaches().Create($xlDatabase,$pivotRange,$xlPivotTableVersion15)
$PivotTable.CreatePivotTable("R1C1","Tables1") | Out-Null
[void]$WS2.Select()
$WBK1.ShowPivotTableFieldList = $true
# configure pivottable fields
$PivotFields = $WS2.PivotTables("Tables1").PivotFields("VmName")
$PivotFields.Orientation = $xlRowField
$PivotFields = $WS2.PivotTables("Tables1").PivotFields("RAM")
$PivotFields.Orientation = $xlDataField
$PivotFields.Function = $xlAverage
$PivotFields = $WS2.PivotTables("Tables1").PivotFields("vCPU")
$PivotFields.Orientation = $xlDataField
$PivotFields.Function = $xlAverage
$PivotFields = $WS2.PivotTables("Tables1").PivotFields("Dept") # I also tried commenting these lines out
$PivotFields.Orientation = $xlFilterField # I also tried commenting these lines out
$xlValueEquals = 7
$xlCaptionEquals = 15
$WS2.PivotTables("Tables1").PivotFields("Dept").PivotFilters.Add2($xlValueEquals, "Finance")
は、私がPivotFilters.AddとPivotFilters.Add2私は常に取得するいずれかの方法の両方を使用して試してみました
また、私はすでに作成したフィルタを持っている場合、それを混乱されたと思ったとして、上記の注釈付き行をコメントアウトしようとしました。
アドバイスをいただければ幸いです!