跟着超链接 - VBA到Python

2024-06-16 09:22:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个桌面应用程序,它允许URL脚本根据报告类型和日期自动下载。我可以使用下面的VBA代码绕过任何浏览器:

Sub Hyperlink()
Dim URL As String
URL = "https://www.example.com" 
ThisWorkbook.FollowHyperlink (URL)
End Sub

当我尝试使用各种Python示例时,它会打开浏览器重新下载桌面应用程序,而不是启动自动下载

urllib.urlopen('http://example.com')
webbrowser.open('http://example.com')

目前,我找到了一个解决方案,使用win32com创建一个临时xlsm表来执行上面的VBA

import win32com.client

VBAscript = """
Sub Hyperlink()
Dim URL As String
URL = "https://www.example.com" 
ThisWorkbook.FollowHyperlink (URL)
End Sub
"""

xl = win32com.client.DispatchEx('Excel.Application')  # Initiate Excel
wb = xl.Workbooks.Add()  # Open a workbook
mod = wb.VBProject.VBComponents.Add(1)  # Create a new Module
mod.CodeModule.AddFromString(VBAscript)  # Insert VBAscript as new Sub
xl.Run('Hyperlink')  # Run Hyperlink Macro
xl.DisplayAlerts = False  # Turn off DisplayAlerts (No Save Prompt)
xl.Quit()  # Close Excel

除了临时的xlsm表之外,还有其他方法可以使用Python实现这一点吗


Tags: com应用程序urlexampleas浏览器vbaexcel