2017-05-15 49 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」)。