如何使用VBA删除Excel Ribbon中最近的文档历史logging

如何使用VBA删除Excel Ribbon中最近的文档历史logging。

我正在使用下面的代码,但它似乎并没有工作。

Sub Button1_Click() For i = 1 To Application.RecentFiles.Count - 1 Application.RecentFiles(i).Delete Next i End Sub 

谢谢 …

要清除最近使用的文件列表,而不是弄乱用户的设置,下面的代码将工作:

 originalSetting = Application.RecentFiles.Maximum Application.RecentFiles.Maximum = 0 Application.RecentFiles.Maximum = originalSetting 

这将删除最近的文件,然后将最大数量的最新文件重新设置回用户最初的任何文件。

如果你只是想单独删除它们,你可以通过相反的顺序来完成这项工作。

  Dim i As Integer For i = Application.RecentFiles.Count To 1 Step -1 Application.RecentFiles.Item(i).Delete Next 

您需要从收集的底部开始运行,因为只要从RecentFiles集合中删除其中一个条目,其余文件的所有索引都会更改。 这样,每次循环时,都会删除集合中的最后一个项目。

此外,由于此集合是Base 1而不是Base 0,集合中的最后一项是Application.RecentFiles.Count,而不是.RecentFiles.Count-1。

我只是喜欢所有这些在Excel中的不一致.. 🙂

没有直接的机制来隐藏最近使用的文件列表。 可以通过将Application.RecentFiles.Maximum设置为零(0)来完成。

有关详细的讨论,请参阅Ron de Bruin 在Excel 2007中更改function区 ,然后向下滚动到标题为“独裁者示例”和隐藏MRU(“最近使用”)文件列表的部分,其中Jim Rech提供了代码。

这也可以手动完成。 请参阅: 如何在Office 2007中清除和删除最近的文档列表(Word,Excel,PowerPoint) 。

迈克

要从近期文件列表中清除activeworkbook,请使用以下命令:

 Sub DeleteFileFromRecentFiles() Dim i As Integer For Each RecentFile In Application.RecentFiles If ActiveWorkbook.Name = RecentFile.Name Then i = i + 1 Application.RecentFiles.Item(i).Delete End If Next End Sub 

真诚的理查德