我最近开始使用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