首页 > 解决方案 > 在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"

我希望写在新打开的工作簿的第一个单元格上。

标签: excelvba

解决方案


这现在正在使用睡眠:

#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 的建议


推荐阅读