每当下载具有特定名称的文件时自动触发VBA宏

时间:2017-06-08 20:38:39

标签: excel vba excel-vba

用户从信息中心下载定期报告。此报告以.xls文件的形式下载。用户要求我编写一个VBA程序,每次下载此报告时都会完成几个操作。

她不想记得在下载报告时启动此宏 - 她希望在下载文件时自行启动它。

报告始终具有相同的名称和格式。

有没有办法让Excel检测到某个文件已经下载了某个名称并启动了一个宏?

1 个答案:

答案 0 :(得分:0)

OP在这里。

感谢大家的回复。我想发布我最终做的事情,以防其他人需要完成类似的任务。

我创建了一个完成此操作的加载项。

它包含一个类模块,用于监听WindowActivate事件何时发生,并检查工作簿名称是否与报告名称匹配。如果是,则执行请求的转换。

Public WithEvents appevent As Application

Private Sub appevent_WindowActivate(ByVal wb As Workbook, ByVal Wn As Window)
If ((wb.Name Like "WB NAME GIVEN BY USER*")
     DO REQUESTED TRANSFORMATIONS

ThisWorkbook对象调用类模块,如下所示:

'Make instance of Class1 with global scope'
  Dim myobject As New Class1


Private Sub Workbook_Open()
  Set myobject.appevent = Application
End Sub

显然,这种解决方案取决于各种假设,并且对性能非常不利。但是,我发布它是因为它完成了工作,可能对其他人有用。

英语不是我的第一语言 - 我为任何错误道歉。