2017-09-24 59 views
2

延迟Auto_Open宏我目前正在开发一个宏,我最终会使用从网络导入每天,Excel文件打开时会激活数据。数据仅在一天中的某个时间段之后才有意义,我将使用任务计划程序在这段时间后自动打开文件。与选项取消

唯一的问题是,当我手动打开文件时,我不想让宏运行,因此我想知道是否可以在宏上添加延时计时器,并且增加了停止的功能该宏在此期间执行。或者如果有任何其他可能的解决方案来解决这个问题。

干杯所有

+0

尝试用禁用宏选项打开它。 –

+0

我假设你正在谈论从Excel内打开时按住Shift键?我不得不看这个,因为直到现在我从来没有理由使用它。这是唯一的方法吗?因为我不可避免地会忘记做这件事并且弄乱我的数据。 – andimac

+1

您不必将数据导入脚本放在worksheet_open中,您可以使用VBS自动化运行它和任何宏,然后安排任务管理器来运行** get_data.VBS **文件脚本。 –

回答

3

你可以有一个MsgBox当您打开工作簿。

  • 如果您单击取消,代码将不会运行。
  • 如果单击确定,代码将 运行。
  • 如果你不这样做的5秒(任务调度程序),代码将 运行任何东西。

Private Sub Workbook_Open() 
Dim msg As String, runcode As Long 

msg = "Click cancel to abort or the code will execute in 5 seconds!" 
runcode = CreateObject("Wscript.Shell").Popup(msg, 5, "What to do:", vbOKCancel) 

If runcode = 2 Then End 

'call import data macro 
End Sub 
+0

这就是我正在寻找的东西!谢谢 – andimac

+0

优秀!!!!!! –

+0

对不起,以恢复这一点,但虽然这工作昨天它似乎不再工作,没有重大的代码改变。消息框仍然出现,但十秒后不会消失。任何人都知道这里可能会发生什么? – andimac