gpt4 book ai didi

python - 用作变量时如何在win32中运行VBA宏

转载 作者:行者123 更新时间:2023-12-04 07:44:13 25 4
gpt4 key购买 nike

我正在编写一个脚本,它打开一个 Excel 工作表并输入一些数据并运行一个 VBA 宏。

import os
import win32com.client
import glob

xl=win32com.client.Dispatch("Excel.Application")
working_dir = os.getcwd()

path = os.path.join(working_dir, 'folder')
file_list = glob.glob(path + '/*.xls*')
for file in file_list:
file_name = str(file)
wb = xl.Workbooks.Open(file_name)
wb.Worksheets("sheet1").Activate()
ws = wb.Activesheet.Name
ws1 = wb.Worksheets(ws)
ws1.Range("E5").FormulaR1C1 = "add_text_here"
xl.Goto(ws1.Range('E5'))
xl.Run("excel_sheet.xls!macro")
wb.Close(SaveChanges=True)
xl.Quit()
我能够正确运行这个脚本。我遇到的问题是,当我将运行宏更改为从如下所示的变量中读取时。
xl.Run(file_name+"!macro") # here I changed file name to a variable
我得到

The macro may not be available in this workbook or all macros may be disabled.", 'xlmain11.chm', 0, -2146827284), None)


错误。
我真的需要这样做,因为我不想给 Excel 文件名硬编码,这个 Excel 文件可能会改变。请帮我。

最佳答案

最简单的方法是使用

xl.Run(wb.Name+"!macro")

关于python - 用作变量时如何在win32中运行VBA宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67280413/

25 4 0
文章推荐: java - Stream 而不是 Stream 在列表上调用时产生