【发布时间】:2020-05-14 09:14:54
【问题描述】:
我正在尝试使用在 Excel 中调用 vba 代码的 Powershell 脚本自动刷新数据透视表。 我的 powershell 代码如下。
$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')
第一个宏“导入”工作得很好。但是用源中的新数据刷新数据透视表的第二个“MAJ”没有
我首先在maj中尝试了这个宏:
Sub maj()
Dim pt As PivotTable
Set pt = ActiveSheet.PivotTables("TCD")
pt.RefreshTable
End Sub
我没有收到任何错误,但我的数据透视表没有刷新,我必须手动完成。
然后我尝试了这个来更改数据透视表的数据源:
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
但我在 VBA 中有 438 错误:对象不支持此行的此属性或方法
ActiveSheet.PivotTables("TCD").ChangePivotCach (pvtCache)
你能帮忙吗?
编辑:
如您所见,我确实有一个工作表和一个名为 TCD 的数据透视表。
编辑: 事实上宏正在工作,我通过创建一个调用它的按钮来测试它。 当我用powershell调用它时它不起作用
【问题讨论】:
-
不应该是 '.ChangePivotCache' 而不是 '.ChangePivotCach'?
-
是的,这只是一个小费错误。我仍然得到同样的错误:object doesn't support this property or method, and for the same line
标签: vba excel powershell