我正在开发这个应用程序,加载一个excel工作表,并允许用户运行宏和标记单元格。我试图从Excel工作表中读取宏时遇到问题。我使用win32com模块进行所有的excel访问。到目前为止,这对我很好。但是我正在努力创建代码来为我提供所有的宏。我有相应的VBA代码,它确实为我提供了宏,但是到目前为止,我还没有成功地将它翻译成python。我想阅读所有使用Python代码的宏。 下面是VBA代码:
Sub ListMacros()
Const vbext_pk_Proc = 0
Dim VBComp As Object
Dim VBCodeMod As Object
Dim oListsheet As Object
Dim StartLine As Long
Dim ProcName As String
Dim iCount As Integer
Application.ScreenUpdating = False
On Error Resume Next
Set oListsheet = ActiveWorkbook.Worksheets.Add
iCount = 1
oListsheet.Range("A1").Value = "Macro"
For Each VBComp In ThisWorkbook.VBProject.VBComponents
Set VBCodeMod = ThisWorkbook.VBProject.VBComponents(VBComp.Name).CodeModule
With VBCodeMod
StartLine = .CountOfDeclarationLines + 1
Do Until StartLine >= .CountOfLines
oListsheet.[a1].Offset(iCount, 0).Value = _
.ProcOfLine(StartLine, vbext_pk_Proc)
iCount = iCount + 1
StartLine = StartLine + _
.ProcCountLines(.ProcOfLine(StartLine, _
vbext_pk_Proc), vbext_pk_Proc)
Loop
End With
Set VBCodeMod = Nothing
Next VBComp
Application.ScreenUpdating = True
End Sub
我在VBA方面没有任何经验。我正在为此挣扎。关于如何处理这个问题的任何建议都将是非常重要的谢谢。谢谢在
编辑:这是我到目前为止的资料!!在
^{pr2}$但我需要宏的名字。谢谢你的帮助!在
不幸的是,我不认为你可以直接使用VBA获得宏名称。相反,你扫描代码模块寻找Sub xxx等等
请注意,您需要确保正确退出脚本,否则将使Excel保持运行状态(检查taskmgr)。在
相关问题 更多 >
编程相关推荐