每次保存文本文件时如何运行 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 宏?的主要内容,如果未能解决你的问题,请参考以下文章