我最近開始使用python 3.6(槽Anaconda),所以我很抱歉,如果下面的結果不明確。情況如下:python打開最新的excel文件
我有一個excel文件,我用它來運行宏以獲取先知的結果。我的宏很好用,但不幸的是,經過幾次使用後,excel達到了內存限制,我無法再提取結果。解決問題的方法是關閉excel然後再打開它。
爲此,在同一個vba宏中,我打開一個python腳本,它允許我運行宏,保存excel文件,關閉並再次打開它。宏是以下:
import win32com.client
object = win32com.client.Dispatch('Excel.Application')
object.visible=1
object.Run("Central_Run")
print("Macro ran successfully!")
print("Active WB:", object.ActiveWorkbook.Name)
for wb in object.Workbooks:
print("WB:",wb.Name)
wb.Save()
#The loop above saves all the workbooks that are open
object.quit()
#Open the Excel file again
object=win32com.client.Dispatch('Excel.Application')
wb=object.Workbooks.open(‘myfile.xlsm')
該腳本,不過,我想打開Excel文件,在腳本的第二部分,沒有指定其名稱(WB = object.Workbooks.open(」 myfile.xlsm')),以便我可以使用其他類似excel文件具有不同名稱的代碼。我的想法是打開最新使用的Excel文件或將腳本鏈接到我的Excel文件中的特定單元格,以便我只需修改該單元格而不是腳本,但不幸的是,我無法做到它。 在此先感謝您的幫助! :)
不知道你想要做什麼。你想打開一個空白的電子表格,然後從其他電子表格中複製一個宏嗎? – Amorpheuses
嗨。對不起,以上不清楚。步驟應該如下: 1)打開包含2個宏的excel工作表;第一個打開python,第二個從Prophet中提取結果(文件名爲「myfile.xlsm」) 2)運行宏打開Python腳本(腳本在上面的問題中); 3)使用Python腳本,我在第一點的excel中運行宏。在同一個腳本中,我保存並關閉了我打開的每個excel工作表。 4)在宏的最後部分,我想再次打開第1點的Excel文件,而不使用它的名稱(「myfile.xlsm」)。 – FioravanteL
主要目的是爲每個不同的excel文件使用python腳本,而不必在每次將其調整爲excel文件時更改代碼(在我定義excel文件名稱的部分)。 – FioravanteL