2017-05-15 28 views
0
xl=win32com.client.Dispatch("Excel.Application") 

if os.path.isfile(path_excel): 

     workbook1 = xl.Workbooks.Open(path_excel) 

x1.Workbooks.Add("C:\\Users\\ms35814\\AppData\\Roaming\\Microsoft\\Excel\\XLSTART\\PERSONAL.XLSB") 

xl.Application.Run('PERSONAL.XLSB!iss10_cwt') 
xl.Application.Quit() # Comment this out if your excel script closes 
del xl 

鉴于以上运行个人宏本书是我用来调用从蟒蛇我个人宏书的剧本,但它给出了一个错误从PyWin32

NameError: name 'x1' is not defined

我已经安装了PyWin32并导入win32com.clientos。 谢谢!

+1

看起来像一个错字。你在任何地方都使用XL,但是你的Workbooks.Add,你有X1 – gizlmo

+0

耶!对不起,这是可怕的,但我有另一个问题后,纠正这种错字:',ü“对不起,我们找不到C:\\用户\\用户名\\ Documents \\ PERSONAL.XLSB。它是否可能被移动 ,重命名或删除?“,u'xlmain11.chm',0,-2146827284),错误是x1.Application.Run('PERSONAL.XLSB!iss10_cwt')。我不知道为什么它会搜索上面的路径,因为脚本 – manoj

+0

中提到了personal.xlsb的路径,所以尝试在Application.Run中指定完整的文件路径。如果不指定文件路径,它可能会默认在文档中搜索。 – gizlmo

回答

0

我得到了解决方案!我们必须打开两个工作簿(personal.xlsb以及我们必须运行宏的文件),并且需要运行x1.Application.Run(“PERSONAL.XLSB!iss10_cwt”)。