用户从信息中心下载定期报告。此报告以.xls文件的形式下载。用户要求我编写一个VBA程序,每次下载此报告时都会完成几个操作。
她不想记得在下载报告时启动此宏 - 她希望在下载文件时自行启动它。
报告始终具有相同的名称和格式。
有没有办法让Excel检测到某个文件已经下载了某个名称并启动了一个宏?
答案 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
显然,这种解决方案取决于各种假设,并且对性能非常不利。但是,我发布它是因为它完成了工作,可能对其他人有用。
英语不是我的第一语言 - 我为任何错误道歉。