I am trying to add a vba_project to "Sheet1" of a workbook using python.
I am following XLSXWRITER documentation to get the bin of the VBA code from a different sheet which I would want to use in "Sheet1" of my new workbook.
I enter the below code in command prompt but I get the error: "'vba_extract.py' is not recognized as an internal or external command"
$ vba_extract.py Book1.xlsm
Extracted: vbaProject.bin
Run Code Online (Sandbox Code Playgroud)
Can someone give me a step by step on how to extract the macro from old file as bin and then input into sheet1 of new workbook using python?
你必须告诉 cmd 你正在运行一个 python 文件。
试试这个批处理代码:
cd C:\path\of\yourfile.py
python vba_extract.py Book1.xlsm
Run Code Online (Sandbox Code Playgroud)
编辑:添加了 cd 命令,您必须位于 python 文件的文件夹中。
我今天想出了这个,只是想把它留在这里供未来的任何人使用。这是令人难以置信的令人沮丧,不知道该怎么做。如果您使用的是 Pandas 库,这也是相关的。确保也安装 xlsxwriter。
1.单击Windows开始按钮并键入“cmd”并单击它以运行命令提示符。
2.打开后,需要找到vba_extract.py文件所在的位置。对我来说,它在这里:
C:\Users\yourusername\AppData\Local\Programs\Python\Python36-32\Scripts\vba_extract.py
Run Code Online (Sandbox Code Playgroud)
3.现在,您需要获取要从中获取的 .xlsm 文件的路径。如果您没有制作 .xlsm 文件。做一个。下面是一个例子:
C:\Users\yourusername\Desktop\excelfilename.xlsm
Run Code Online (Sandbox Code Playgroud)
4.现在,回到命令提示符。这正是您要键入的内容。您将从第 2 步和第 3 步中取出两个项目,然后组合并按 Enter。这里:
C:\Users\yourusername\AppData\Local\Programs\Python\Python36-32\Scripts\vba_extract.py C:\Users\yourusername\Desktop\excelfilename.xlsm
Run Code Online (Sandbox Code Playgroud)
如果成功,它会告诉你:
Extracted: vbaProject.bin
Run Code Online (Sandbox Code Playgroud)
5.对于这个我不确定。我假设无论您的 .xlsm 文件是 .bin 文件的最终位置。对于这个例子,它最终出现在我的桌面上。它将包含您在原始 .xlsm 文件中创建或拥有的所有宏。
C:\Users\yourusername\Desktop/vbaProject.bin
Run Code Online (Sandbox Code Playgroud)
这是在完整代码中使用的示例:
import pandas
import xlsxwriter
df_new = pd.read_csv('C:\\Users\\yourusername\\Desktop\\CSV1.csv')
writer = pd.ExcelWriter('C:\\Users\\yourusername\\Desktop\\CSV1.xlsx')
df_new.to_excel(writer, index = False, sheet_name = 'File Name', header = False)
pandaswb = writer.book
pandaswb.filename = 'C:\\Users\\yourusername\\Desktop\\newmacroexcelfile.xlsm')
pandaswb.add_vba_project(r'C:\Users\yourusername\Desktop/vbaProject.bin')
writer.save()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6577 次 |
| 最近记录: |