excel - 在excel VBA中使用发送键打开后如何检查文件是否已经打开?
问题描述
我正在从网站打开一个文件。在我发送 sendkeys "%{O}" 之后,我需要先打开文件,然后再继续。如果我在 sendkeys 之后添加等待时间或循环,则文件在这些循环之后才会打开。请注意,我不知道文件的名称或位置,我只是从给我的路径中打开它。
我已经尝试过放置 Application.Wait,创建一个只计数的子,并在打开和写入工作表之间使用它。
Application.SendKeys "%{O}" 'opens the workbook from IE
Set wb2 = ActiveWorkbook.Worksheets("Needed_Worksheet")
wb2.Cells(1,1) = "HELLO"
我希望写在新打开的工作簿的第一个单元格上。
解决方案
这现在正在使用睡眠:
#If VBA7 Then
Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) 'For 64 Bit Systems
#Else
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) 'For 32 Bit Systems
#End If
然后调用:
Sleep 20000
感谢@DavidZemens 的建议
推荐阅读
- android - 2019 年适用于 Android 的 Phonegap 推送通知 - 有效吗?
- reactjs - 测试使用 Hooks 获取数据的 React 组件
- google-apps-script - 跨部署锁定服务
- php - 多次加在一起 Carbon Laravel
- java - Vertx.io 调度任务
- sql - 2 列中带和不带 WHERE 的 SQL 计数
- java - 将 JAR 包装为 NT 服务而不访问目标系统
- c# - 如何锁定和解锁 SQL SERVER 表?
- c++ - 父子之间的缓冲读/写图像数据未完成
- php - Prestashop,在产品页面中获取具有相同 ean13 的其他产品