php向excel中加入vba,如何使用Python向Excel文件添加microsoftexcel对象VBA代码

用户尝试使用Python将VBA脚本添加到一个新的Excel文件中,该文件应该在特定单元格被点击时触发宏。他们遇到了问题,即脚本被添加为‘Module1’而不是与工作表关联的‘Microsoft Excel 对象’,并且添加后的宏格式不正确。用户已经确保了VBA项目的访问权限,并提供了读取vbaProject.bin文件和尝试添加宏的代码片段。
摘要由CSDN通过智能技术生成

我有一个用VBA,Excel编写的长脚本。我正在使用Python创建另一个Excel文件,我希望将脚本嵌入到该文件中。我可以在Excel中添加一个宏作为“Module1”,但不能作为与特定工作表关联的“microsoftexcel对象”。它必须与一个命名的工作表相关联,因为当您单击输入单元格时,它会突出显示特定的单元格。在

我提取了vbaProject.bin与我要添加到的Excel文件所在的文件夹中。我还记得在Excel中设置正确的权限(文件->选项->信任中心->信任中心设置->宏设置->信任对VBA项目对象模型的访问权限)。在

我刚刚生成了一个名为输出.xlsm它在启动此代码之前打开时没有问题,不包含VBA,并且有多个工作表。在

我希望这是清楚的-我是一个新手,这是我的第一个问题。在import os

import win32com.client

mydir = os.getcwd()

with open ('vbaProject.bin', 'rb') as myfile:

print('Reading macro into string from vbaProject.bin')

macro = myfile.read()

excel = win32com.client.Dispatch('Excel.Application')

excel.Visible = False

workbook = excel.Workbooks.Open(Filename = mydir + '/output.xlsm')

excelModule = workbook.VBProject.VBComponents.Add(1)

excelModule.CodeModule.AddFromString(macro)

excel.Workbooks(1).Close(SaveChanges = 1)

excel.Application.Quit()

del excel

此代码添加“Module1”,而不是Microsoft Excel对象。在

另外,当我试图关闭新的Excel文件时,添加为“Module1”的宏的格式不正确。这是一些令人目瞪口呆的人物,而不是一个冗长的剧本。在

谢谢你的帮助。在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值