我想使用調用Excel中的vba代碼的Powershell腳本自動刷新數據透視表。 我的powershell代碼是th。使用VBA刷新數據透視表
$excel = new-object -comobject excel.application
$workbook = $excel.workbooks.open("$para_temp\RapportPalettes.xlsm")
$worksheet = $workbook.worksheets.item("source")
$excel.Run('Import')
$worksheet = $workbook.worksheets.item("TCD")
$excel.Run('MAJ')
第一個宏「導入」工作得很好。但是,第二個「少校」,隨着源新數據刷新數據透視表不
我第一次嘗試這個宏少將:
Sub maj()
Dim pt As PivotTable
Set pt = ActiveSheet.PivotTables("TCD")
pt.RefreshTable
End Sub
我沒有得到任何錯誤,但我pivote表沒有刷新,我必須手動完成。
然後我試圖這一個來改變數據的樞軸表的源:
Sub MAJ()
Dim sht As Worksheet
Dim SrcData As String
Dim pvtCache As PivotCache
'Determine the data range you want to pivot
Set sht = ThisWorkbook.Worksheets("Source")
SrcData = sht.Name & "!" & Range("A1:Z10000").Address(ReferenceStyle:=xlR1C1)
'Create New Pivot Cache from Source Data
Set pvtCache = ActiveWorkbook.PivotCaches.Create(_
SourceType:=xlDatabase, _
SourceData:=SrcData)
'Change which Pivot Cache the Pivot Table is referring to
Worksheets("TCD").Activate
ActiveSheet.PivotTables("TCD").ChangePivotCach (pvtCache)
End Sub
但是我有一個438錯誤在VBA:對象不支持此屬性或方法,用於該行
ActiveSheet.PivotTables("TCD").ChangePivotCach (pvtCache)
請幫忙嗎?
編輯:
編輯: 其實宏的工作,我通過創建一個按鈕調用它進行了測試。 當我使用PowerShell
它不應該是「.ChangePivotCache」,而不是「.ChangePivotCach」? – thepip3r
是的,這只是一個小費錯誤。我仍然得到相同的錯誤:對象不支持此屬性或方法,並在同一行 –