0
我在使用Powershell將多個列字段添加到Excel中的數據透視表時遇到問題。錄製的VBA宏工作正常,但一旦轉錄到Powershell,就會出現細微的錯誤。我有三列:ID,名稱和組。我希望ID和名稱是列分組和組作爲行分組。使用Powershell將多列字段添加到數據透視表
這可以在沒有任何問題或錯誤的Excel界面中完成。記錄的宏是:
With ActiveSheet.PivotTables("PivotTable1").PivotFields("Name")
.Orientation = xlColumnField
.Position = 1
End With
With ActiveSheet.PivotTables("PivotTable1").PivotFields("ID")
.Orientation = xlColumnField
.Position = 2
End With
With ActiveSheet.PivotTables("PivotTable1").PivotFields("Group")
.Orientation = xlRowField
.Position = 1
End With
宏記錄的運行和完美的作品。現在,我需要在Powershell中複製此代碼以執行自動化作業。這裏是我寫的Powershell:
$pt.PivotFields('Name').Orientation = [Microsoft.Office.Interop.Excel.XlPivotFieldOrientation]::xlColumnField
$pt.PivotFields('Name').Position = 1
$pt.PivotFields("ID").Orientation = [Microsoft.Office.Interop.Excel.XlPivotFieldOrientation]::xlColumnField
$pt.PivotFields("ID").Position = 2
$pt.PivotFields('Group').Orientation = [Microsoft.Office.Interop.Excel.XlPivotFieldOrientation]::xlRowField
$pt.PivotFields('Group').Position = 1
即使代碼是相同的,結果不是。使用VBA宏,數據透視表最終以Name和ID作爲列字段,Group作爲行字段。使用Powershell腳本,只有名稱成爲列字段。該ID不是列字段。集團仍然成爲一個行字段。
任何想法?我也試着用不同的API方法使用這種方法:
$pt.AddFields('Group', [array]('Name','ID'))
這給出了相同的結果。
在上面的powershell解壓縮中,_ID_用雙引號引起,而_Name_和_Group_用單引號引起來。 –
@GordonK我的一位同事告訴我,有時候單引號可以打破其中有空格的字符串。在實際(專有)代碼中,該字段名稱中有一個空格,因此雙引號用於解決可能出現的所有問題。 –