如果最终是通用的,请提前道歉。我对此做了一些研究,并得出了一个完整的空白。
Excel很棒,我喜欢Excel。这么多,以及"最近的文件"部分对我来说几乎没用,因为我在疯狂的地点使用那么多的电子表格。
我一直在研究一种在打开时记录(使用VBA作为AddIn)文档的方法。即使它与带有日期的文本文件一样简单,但我无法弄清楚如何获得VBA代码"知道"当一个文件被打开时(与输出到文本文件一起,我希望它在这个阶段完成)。
有没有办法让VBA在excel实例中查找此操作?
答案 0 :(得分:2)
以下步骤(改编自http://www.cpearson.com/excel/AppEvent.aspx的优秀帖子)是“最低限度可行”的方式,可以满足您的需求。
CExcelEvents
Private WithEvents App As Application Private Sub Class_Initialize() Set App = Application MsgBox "initialized the class!" End Sub Private Sub App_WorkbookOpen(ByVal Wb As Workbook) MsgBox "New Workbook was opened: " & Wb.Name End Sub
5.右键单击项目浏览器中的“ThisWorkbook”元素,然后选择“查看代码”
6.添加以下代码:
Private XLApp As CExcelEvents
Private Sub Workbook_Open()
Set XLApp = New CExcelEvents
End Sub
这将创建一个CExcelEvents类的实例,并在加载addIn时“打开事件处理”。
最后,将文件保存为myEvents.xlam
在存储addIns的位置 - 这取决于您的计算机......
如果您现在关闭文件,并添加addIn(再次,取决于您的环境,无论是来自Developer功能区还是Tools菜单),您应该会看到一个“初始化类!”的对话框。这表明addIn已正确安装并正常工作。
现在,当您打开工作簿时,将出现另一个消息框:“已打开新工作簿:”,并带有名称。
显然,您将要删除消息框,并添加一些“有用”代码,以执行您想要执行的操作(例如,将工作簿的名称记录到文件中)。这听起来像你不需要后者的帮助 - 如果我错了,请告诉我。