如何让Excel的TODAY函数无需打开文件自动更新(用于VMIX新闻跑马灯)
解决Excel TODAY()无需打开自动更新适配vMix跑马灯的方案
早上好!针对你遇到的Excel TODAY() 函数必须打开文件才会更新、没法给vMix跑马灯稳定提供日期的问题,我整理了几个实用的解决方案,从绕开Excel到直接用vMix原生功能都有,你可以按需选择:
方法1:PowerShell脚本+Windows任务计划(纯后台,无需打开Excel界面)
这个方案完全不需要手动或界面打开Excel,靠脚本后台自动更新日期,适合需要严格依赖Excel文件的场景:
- 第一步:编写PowerShell脚本
新建一个文本文件,把下面的代码粘贴进去,然后保存为UpdateExcelDate.ps1(注意把文件后缀改成.ps1):# 加载Excel COM组件 $excel = New-Object -ComObject Excel.Application # 隐藏Excel窗口,避免弹出界面 $excel.Visible = $false # 替换成你的目标Excel文件路径 $filePath = "C:\Users\你的用户名\Documents\跑马灯日期文件.xlsx" $workbook = $excel.Workbooks.Open($filePath) # 替换成你存放日期的工作表和单元格(比如Sheet1的A1) $worksheet = $workbook.Worksheets.Item("Sheet1") $worksheet.Cells.Item(1,1).Formula = "=TODAY()" # 保存并关闭工作簿 $workbook.Save() $workbook.Close() # 释放COM对象,防止残留Excel进程 $excel.Quit() [System.Runtime.Interopservices.Marshal]::ReleaseComObject($excel) | Out-Null - 第二步:设置Windows任务计划自动运行脚本
- 按下
Win+R输入taskschd.msc打开「任务计划程序」 - 点击「创建基本任务」,命名为“更新Excel跑马灯日期”,下一步
- 触发条件选择「每天」,设置更新时间(比如凌晨0点,避免影响白天使用),下一步
- 操作选择「启动程序」,程序/脚本选
powershell.exe,添加参数填:-ExecutionPolicy Bypass -File "C:\你的脚本路径\UpdateExcelDate.ps1" - 勾选「不管用户是否登录都要运行」,并在「设置」里勾选「唤醒计算机运行此任务」(如果服务器会休眠),完成即可
- 按下
方法2:VBA+Excel后台自动启动(适合需要Excel常驻后台的场景)
如果你的工作流必须依赖Excel文件,也可以用VBA让Excel后台自动更新:
- 第一步:给Excel文件添加自动更新的VBA代码
- 打开目标Excel文件,按下
Alt+F11打开VBA编辑器 - 在左侧项目窗口找到「ThisWorkbook」,双击打开代码编辑区
- 粘贴以下代码:
Private Sub Workbook_Open() ' 更新指定单元格的日期公式,替换成你的工作表和单元格 ThisWorkbook.Sheets("Sheet1").Range("A1").Formula = "=TODAY()" ' 自动保存文件 ThisWorkbook.Save ' 让Excel最小化后台运行,不影响桌面操作 Application.WindowState = xlMinimized ' 如果需要完全隐藏Excel窗口,可以把上面一行换成:Application.Visible = False End Sub - 保存文件为「启用宏的工作簿(.xlsm)」格式
- 打开目标Excel文件,按下
- 第二步:设置Excel开机自动后台启动
- 右键Excel文件→「创建快捷方式」
- 按下
Win+R输入shell:startup打开「启动」文件夹,把快捷方式拖进去 - 右键快捷方式→「属性」,在「目标」栏的末尾添加参数
/e /x(注意前面加空格),比如:"C:\Program Files\Microsoft Office\root\Office16\EXCEL.EXE" /e /x "C:\你的文件路径\跑马灯日期文件.xlsm"
方法3:直接用vMix内置变量(最推荐,完全脱离Excel)
其实vMix本身就支持实时显示当前日期,根本不需要依赖Excel,步骤更简单:
- 打开vMix,点击「添加输入」→选择「文本」
- 在文本编辑界面,直接输入日期变量:
- 显示默认格式日期:
[Date] - 自定义格式(比如中文格式):
[Date:yyyy年MM月dd日] - 其他格式示例:
[Date:MM/dd/yyyy]
- 显示默认格式日期:
- 把这个文本输入源添加到跑马灯,它会自动实时更新日期,完全不用管Excel的问题!
内容的提问来源于stack exchange,提问作者nurotriyono
相关产品推荐
相关产品推荐

