[英]Creating Word Application using Excel VBA: Run-time error '429': ActiveX component can't create object
[英]How to fix "Run time error 429: ActiveX Component Can't Create Object" Error when using Task Scheduler to run a selenium vba macro in Excel?
我在 Excel 中有一个宏,它使用 Selenium 基本类型库打开 Chrome 并在 Chrome 浏览器中自动执行一些 Web 任务。 我设置了一个 VBS 来运行宏,当我双击 VBS 时,它可以手动顺利运行。
这是流程:
Task Scheduler -> RunMacroUploadAsia.vbs 在 WeeklyUpload.xlsm 中启动 WeekendNoRunAsia 宏 -> 完成 WeekendNoRunAsia 宏并启动 UploadPostAsia 宏以打开 Chrome 浏览器执行一些网络任务。
当我使用 Windows 任务计划程序运行 VBS 脚本以按计划运行 Excel 宏时,
“运行时错误 429,ActiveX 组件无法创建对象”
Excel 窗口中出现错误。 当我调试宏时,它会卡在 UploadPostAsia 宏中的这行代码中:
Set D = New ChromeDriver
为什么 VBS 手动运行良好,而不是在任务计划程序上运行?
这是我的情况的设置。 VBA 是用 Excel 2007 编写的,我安装了 Selenium 类型库(SeleniumBasic v2.0.9.0)。 我的笔记本电脑在 Windows 7 Home Basic 64 位和我的 Chrome 浏览器 v71.0.3578.98 上运行。
在任务计划程序下的操作选项卡中,我有以下内容:
"C:\\Users\\SKhany\\Google Drive\\myexample\\mystuff tasks\\RunMacroUploadAsia.vbs"
这是 RunMacroUploadAsia.vbs 脚本:
Option Explicit On Error Resume Next ExcelMacroExample Sub ExcelMacroExample() Dim xlApp Dim xlBook Set xlApp = CreateObject("Excel.Application") xlApp.Visible = True Set xlBook = xlApp.Workbooks.Open("C:\\Users\\SKhany\\Google Drive\\myexample\\mystuff tasks\\WeekdayUpload.xlsm", 0, True) xlApp.Run "WeekendNoRunAsia" xlApp.Quit Set xlBook = Nothing Set xlApp = Nothing End Sub
然后宏 WeekendNoRunAsia 将通过 UploadPostAsia 运行(代码如下),然后任务计划程序将停留在
Set D = New ChromeDriver
如果我不使用 Task Scheduler 并且我尝试将代码更改为Set D = New Selenium.Chromedriver
并且仍然出现相同的错误,则工作流程会起作用。 我需要在每个工作日运行此工作流,并且真的很想用 Task Scheduler 解决这个问题,或者如果有任何其他方式来安排 VBS 是受欢迎的。 感谢您对此的任何帮助。
Public Sub UploadPostAsia()
Dim ws As Worksheet
Dim D As WebDriver
Dim i As Integer
Set ws = ThisWorkbook.Worksheets("Data")
Set D = New ChromeDriver
Const URL = "https://www.myexample.com/login/"
'To login to website
With D
.Start "Chrome"
.Window.Maximize
.Get URL
.FindElementById("user_login").SendKeys(ws.Cells(2, 1)).Click
.FindElementById("user_pass").SendKeys(ws.Cells(2, 2)).Click
.FindElementByName("submit").Click
End With
'Perform some web tasks
End Sub
我知道这个线程很旧,但我想我会添加一个关于我发现的评论。 我正在运行一个由于某种原因停止工作并产生此错误的任务。 在感到非常沮丧并玩了一段时间之后,我意识到我已经勾选了“以最高权限运行”。 一旦我取消勾选它,它又开始正常工作了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.