gpt4 book ai didi

vba - 识别 (Excel 2007) VBA 或其他中固定的最近文件?

转载 作者:行者123 更新时间:2023-12-02 11:28:15 25 4
gpt4 key购买 nike

除了扫描注册表之外,还有其他方法可以确定 RecentFile 对象是否固定到“最近的文档”列表中吗?来自 VBA 的偏好,可以存在于加载项中的东西。

背景:我希望说服 Excel 将固定项目“ float ”到列表的顶部(或底部),这可以通过将它们重新添加到最近的文件来实现,如果只有我才能识别出感兴趣的项目。

我可以在注册表中(在 HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Excel\File MRU 中)看到固定项目已在那里标识,例如:

[F00000001][T01CC04D632020F50]*C:\Files\ThisOneIsPinned.xlsx
[F00000000][T01CBFB8F14408960]*C:\Files\ThisOneIsNot.xlsx

...所以我想这是一种接近它的方法。我更喜欢少一点,呃,令人兴奋..

最佳答案

要在 VBA 中访问最近的文件列表,请使用

Sub test()
Dim objAllRecentFiles As Object
Set objAllRecentFiles = Application.recentfiles
End Sub

我不认为除了使用注册表来确定最近的文件是否被固定之外还有其他方法。下面的示例允许您循环浏览所有最近的文件,确定那些未固定的文件并更改注册表以使其固定。注释掉是删除的一种方式

Sub test2()
Dim objAllRecentFiles As Object
Dim WSHShell, RegKey, rKeyWord
Set WSHShell = CreateObject("WScript.Shell")
Set objAllRecentFiles = Application.recentfiles

RegKey = "HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Excel\File MRU\"

For Each rFile In objAllRecentFiles

rKeyWord = WSHShell.RegRead(RegKey & "Item " & rFile.Index)
If InStr(1, rKeyWord, "[F00000000]") Then

'Delete registry
'rFile.Delete

'Change registry setting to make recent file pinned
strPinned = Replace(rKeyWord, "[F00000000]", "[F00000001]")
WSHShell.Regwrite (RegKey & "Item " & rFile.Index), strPinned, "REG_SZ"

End If
Next rFile

End Sub

关于vba - 识别 (Excel 2007) VBA 或其他中固定的最近文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5804347/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com