每次保存文本文件时如何运行 VBA 宏?
Posted
技术标签:
【中文标题】每次保存文本文件时如何运行 VBA 宏?【英文标题】:How to run a VBA macro every time text file is saved? 【发布时间】:2015-08-21 14:58:50 【问题描述】:我试图找到一种方法来每次保存某个文件夹中的文本文件、任何文本文件时运行宏。
有人知道怎么做吗?
【问题讨论】:
您使用的是什么文本编辑器。如果它有宏,您将需要寻找 onSave 事件。如果没有,您将不得不编写一个始终运行并扫描目录中的文件以查找某个时间范围内的最后保存日期的应用程序。 您可以编写一个 VBScript 来重现 VBA 脚本的功能或例如启动包含脚本的工作簿。 -- 使用 Windows 任务计划程序来控制 VBScript(例如每 5 分钟运行一次)。看到这个问题:***.com/questions/4249542/… 【参考方案1】:发件人:http://blogs.technet.com/b/heyscriptingguy/archive/2005/04/04/how-can-i-monitor-for-different-types-of-events-with-just-one-script.aspx
Sub Monitor()
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colMonitoredEvents = objWMIService.ExecNotificationQuery _
("SELECT * FROM __InstanceOperationEvent WITHIN 10 WHERE " _
& "Targetinstance ISA 'CIM_DirectoryContainsFile' and " _
& "TargetInstance.GroupComponent= " _
& "'Win32_Directory.Name=""c:\\\\_Stuff""'")
Do While True
Set objEventObject = colMonitoredEvents.NextEvent()
Select Case objEventObject.Path_.Class
Case "__InstanceCreationEvent"
Debug.Print "A new file was just created: " & _
objEventObject.TargetInstance.PartComponent
Case "__InstanceDeletionEvent"
Debug.Print "A file was just deleted: " & _
objEventObject.TargetInstance.PartComponent
End Select
Loop
End Sub
【讨论】:
不错。这些天我需要坐下来真正学习 VBScript(而不是仅仅从 VBA 中突袭它来获得诸如字典和正则表达式之类的漂亮东西)。以上是关于每次保存文本文件时如何运行 VBA 宏?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用文件对话框将文件路径保存在字符串中,使用 Access VBA?
为啥每次使用 VBA 保存 word 文档时文件大小都会增加?
每次创建新数据透视表并保存文件时,Excel工作簿的文件大小都会增加