小编Fel*_*ein的帖子

使用 XLWINGS 刷新数据透视表

我正在尝试根据 XLWINGS 写入的数据刷新 Excel 中的数据透视表。由于我不知道如何直接从 XLWINGS 执行此操作,因此我尝试使用 VBA。

让我们将我的过程分为两步:

步骤1

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

Sub launchPython()
RunPython ("import PosRep; PosRep")
End Sub
Run Code Online (Sandbox Code Playgroud)

第2步

但由于我事先不知道 Excel 中新创建的范围的大小,因此我想选择它,添加新名称 (NamedRange) 并刷新我的数据透视表(已链接到 NamedRange)。

Sub SelectRange()
Worksheets("GPODump").Range("A1").Select
'...
End Sub
Run Code Online (Sandbox Code Playgroud)

两个潜艇都独立工作得很好。但我无法让它们直接工作。下面的代码:

Sub Main()
launchPython
SelectRange
End Sub
Run Code Online (Sandbox Code Playgroud)

在语句上生成 VBA 错误“范围类的选择方法失败”:

Worksheets("GPODump").Range("A1").Select
Run Code Online (Sandbox Code Playgroud)

我认为与 XLWINGS VBA 模块存在冲突,但我不知道它是什么......非常欢迎任何人的帮助!谢谢

python vba xlwings

5
推荐指数
1
解决办法
9414
查看次数

使用cx_Freeze冻结pandas/NumPy 1.7.0代码时出错

我试图用cx_Freeze冻结Python脚本.该脚本使用了pandas.当我运行cx_Freeze创建的可执行文件时,我得到以下Traceback:

[...]  
File "C:\Python27\lib\site-packages\pandas\__init__.py", line 6, in <module>  
from . import hashtable, tslib, lib  
File "ExtensionLoader_pandas_hashtable.py", line 11, in <module>  
File "numpy.pxd", line 156, in init pandas.hashtable (pandas\hashtable.c:20273)  
File "C:\Python27\lib\site-packages\numpy\__init__.py", line 147, in <module>  
from core import *  
AttributeError: 'module' object has no attribute 'sys'
Run Code Online (Sandbox Code Playgroud)

我正在使用的唯一一个pandas代码(用于测试)是:

from pandas import DataFrame
import pandas as pd
d = {'one' : [1., 2., 3., 4.],
     'two' : [4., 3., 2., 1.]}
df = DataFrame(d)
Run Code Online (Sandbox Code Playgroud)

当我尝试在cx_Freeze设置文件中的'packages'下包含'pandas'时,它在冻结过程中失败:

ValueError: too many values to unpack  
Run Code Online (Sandbox Code Playgroud)

我在Windows7(64位)上遇到了32位和64位版本的Python 2.7.3同样的问题.pandas版本为0.10.1,cx_Freeze为4.3.1. …

python numpy cx-freeze pandas

2
推荐指数
1
解决办法
2941
查看次数

2
推荐指数
1
解决办法
4785
查看次数

标签 统计

python ×3

xlwings ×2

cx-freeze ×1

excel ×1

numpy ×1

pandas ×1

vba ×1