刷新Pivot Table用XLWING

2024-06-16 12:02:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试根据XLWINGS编写的数据刷新excel中的数据透视表。 由于我不知道如何直接从XLWINGS实现,所以我尝试使用VBA。在

我们将流程分为两个步骤:

步骤1

我从vba启动python代码(我的模块名是“PosRep”,由于xlwings,python代码在指定的工作表中写回一系列数据。在

Sub launchPython()
RunPython ("import PosRep; PosRep")
End Sub

第2步

但由于我事先不知道Excel中新创建的区域的大小,我想选择它,添加一个新名称(NamedRange)并刷新我的数据透视图(已经链接到NamedRange)。在

^{pr2}$

两个潜艇都能独立工作。但我不能让它们在原始环境下工作。以下代码:

Sub Main()
launchPython
SelectRange
End Sub

在语句上生成VBA错误“Select method of Range class failed”:

Worksheets("GPODump").Range("A1").Select

我想有一个冲突与XLWINGS VBA模块,但我不知道它可以是什么。。。 任何人的帮助都是非常受欢迎的! 泰铢


Tags: 模块数据代码步骤range流程xlwingsvba
2条回答

问题来自VBA代码。以下代码可以正常工作:

Sheets("GPODump").Select
Sheets("GPODump").Range("A1").Select

也许已经太迟了,但你可以在xlwings内完成它-这是对我有效的方法:

import xlwings as xw
# open excel App
app_excel = xw.App(visible = False)
# open the excel file, select the tab and the PivotTable to refresh
wbook = xw.Book( 'YourFile.xlsx' )
wbook.sheets['Tab1'].select()
wbook.api.ActiveSheet.PivotTables('PivotTableName').PivotCache().refresh()

相关问题 更多 >