Excel 宏如何对我的宏应用延迟

问题描述 投票:0回答:1

我已经尝试了所有这些,但我无法让它工作。 我在 Excel 中有一个 URL 列表,我必须异步打开它,否则服务器将禁止我。 我用这个宏:

Sub OpenHyperLinks()
Dim xHyperlink As Hyperlink
Dim WorkRng As Range
On Error Resume Next
xTitleId = "OpenHyperlinksInExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
For Each xHyperlink In WorkRng.Hyperlinks
xHyperlink.Follow
Next
End Sub

但是这个宏同时打开 Excel 中存在的所有 URL(数量超过 1000 个)的问题会导致系统崩溃。我需要这个或类似的宏,而不是立即打开 Excel 中的所有 URL,而是一次打开一个,例如延迟 10 秒。

示例: 网址:1-2-3-4-5-6-7-8-9-10

当我启动我现在使用的宏时,它会同时打开它们,而我希望它:

网址:1-2-3-4-5-6-7-8-9-10

延迟 10 秒打开(1 10 秒后 2 依此类推)

不幸的是我找不到解决方案=(有没有人已经遇到过这个问题并可以帮助我找到正确的宏或修改这个宏?

一千个感谢

正如我的问题消息中所指出的,我希望有人能找到正确的解决方案,不幸的是我尝试了所有这些,但我不能。

excel vba
1个回答
0
投票

使用下面的延迟子程序 -

 Sub sbDelay(delay As Long) 
     Dim i As Long
     For i = 1 To delay 
         DoEvents 
     Next i  
 End Sub

这样做的优点是使用

DoEvents
创建延迟,这意味着您可以在 Excel 等待时在 Excel 或浏览器中移动(即它是非模态的)。您需要尝试使用拨打它的号码,从 100,000 开始。

© www.soinside.com 2019 - 2024. All rights reserved.