我想通过 VBA 操作 Excel 中的状态栏。我想添加 Min/Max 和可能更多的操作,但就目前而言,这是目标。我尝试使用 Macro Recorder,但它没有拾取任何东西。要手动执行此操作,只需右键单击状态栏,然后选择“最大/最小值”,它就会显示出来。是否有通过 VBA 进行调整的隐藏方法?
注意:我使用的是 Office 2013 x32,但我有许多最终用户可能正在使用 较新 的版本,例如 Office 365 和/或 x64 版本的 Excel ,但没有旧
最佳答案
这些值在 Windows 注册表中设置
HKCU\SOFTWARE\Microsoft\Office\16.0\Excel\StatusBar\
确保 16.0
替换为您的用户正在使用的内部 Office 版本号。
注册表项是
最大值
最小值
并且它们的类型为 REG_DWORD
并且在 0
被禁用的情况下启用 1
。
请注意,无论您选择以下哪种解决方案,设置注册表项后都需要重新启动 Excel。
解决方案一:组策略
通过服务器上的 GPO(组策略)设置它们,每个人都会在下次启动 Excel 时自动启用它。
方案二:VBA
或者使用 VBA 保存注册表项,并使用 Application.Version
确定注册表路径所需的版本号,它为 Office 2019 Professional 返回 16.0
。
可以在此处找到一种注册表操作方法:Read and write from/to registry in VBA (如果你谷歌你也会找到其他方法)。
解决方案 3:批处理文件
您还可以使用批处理文件创建 key :
reg add "HKCU\SOFTWARE\Microsoft\Office\16.0\Excel\StatusBar" /v MaxValue /t REG_DWORD /d 1
reg add "HKCU\SOFTWARE\Microsoft\Office\16.0\Excel\StatusBar" /v MinValue /t REG_DWORD /d 1
使用 reg/?
获取更多信息。
解决方案 4:Powershell
最后,Powershell 也是可能的
set-itemproperty -path HKCU:\SOFTWARE\Microsoft\Office\16.0\Excel\StatusBar -name MaxValue -Value 1
set-itemproperty -path HKCU:\SOFTWARE\Microsoft\Office\16.0\Excel\StatusBar -name MinValue Value -Value 1
参见 Working with Registry Entries .
Excel 版本可以在 Powershell 中读取
$xl = New-Object -ComObject Excel.Application
$xl.Version
$xl.Quit()
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($xl)
Remove-Variable xl
通过打开 Excel ComObject 并询问版本。
关于excel - 以编程方式将最小值/最大值添加到 Excel 右下角的状态栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68042033/