是否可以在不关闭的情况下重命名打开的Word文档?


7

我只是问这个问题,因为我不相信在这么多版本的Word之后,它就不存在了。

通常当我正在处理文档并且我意识到我必须重命名它时,我必须关闭文档,转到文件资源管理器,然后重命名它,然后再次打开它。

这是一个在我的使用模式中根深蒂固的程序,直到现在我才意识到我实际上只需要重命名文件就打开和关闭多个窗口/应用程序等。当然,这是2012年,我应该只需点击几下即可做一个简单的事情吗?

那么有没有办法只重命名word / excel / office文件的文件名而不必先关闭它?

Answers:


5

Word以独占模式 AFAIK 打开文档,因此这会锁定文件并阻止其他程序访问,直到通过关闭文件或Word本身释放锁定为止。我不认为提供对文档的共享访问是一个可行的解决方案,否则如果有意义的话,肯定会很久就实现。


默认情况下,是的,它是独占模式,它确实导致它锁定文件。其他用户可以使用相同的程序访问和修改文件的独占模式和共享模式之间存在一些差异,但我很确定另一个程序(即资源管理器)仍然无法访问该文件。我认为共享模式更专门设计时考虑到了多个SMB用户,而不是具有不同应用程序和同一用户的本地文件系统。我可能错了。
MaQleod

@Karan - 谢谢,这就是我要找的那种答案。那么可能存在一些阻碍其实施的潜在技术问题?
RoboShop

是的,Word(或任何Office程序)对该文件具有独占访问权的事实可能是为了防止从另一个程序同时更新同一文件,从而导致潜在的数据丢失。因此,在这种情况下,防止共享访问很可能是最好的事情,因此需要在对文件执行任何其他操作之前释放对文件的锁定。
Karan

这不应该是选定的答案,因为它讨论了“其他程序”的访问。OP的请求不需要此类访问权限。
kmote 2014年

@kmote:哦,所以文件资源管理器不是一个单独的Word程序?
Karan 2014年

1

是的,这是可能的!

至少在Mac上(OS X 10.8.5)。只需Cmd在已打开的Office文档顶部单击要重命名的文件名即可。然后,您将看到该文件所在的路径。接下来,直接在文件名下单击文件夹的名称。然后,该名称将显示在Finder屏幕中,您可以在其中将其名称调整为您想要的任何名称。

所以不需要先关闭文件,也不需要使用“另存为”并从查找程序中删除第一个文件!(我不知道Windows中是否有相同或类似的技巧。)


1

在@Adam和@LưuVĩnhPhúc的建议的推动下,我创建了以下宏,可以满足您的要求。请注意,这将删除与该文件关联的任何历史记录。

      Sub RenameActiveFile()
    '
    ' Renames the current file without closing the document (assuming file has already been saved)
    '  (Actually, saves with new name and deletes previous, so history will be lost).
    '
    Dim strFileFullName, strFileName, strNewName As String
    Dim res As VbMsgBoxResult

    ' Get current name:
    strFileFullName = ActiveDocument.FullName               'for Word docs
    'strFileFullName = ActiveWorkbook.FullName               'for Excel docs
    'strFileFullName = Application.ActivePresentation.FullName       'for Powerpoint presentations*
    If (InStr(strFileFullName, ".") = 0) Then
        res = MsgBox("File has not been saved. Can't rename it.", , "Rename File")
        Exit Sub
    End If
    strFileName = Right(strFileFullName, Len(strFileFullName) - InStrRev(strFileFullName, "\")) 'strip path
    strFileName = Left(strFileName, (InStr(strFileName, ".") - 1))  ' strip extension

    ' Prompt for new name:
    strNewName = InputBox("Rename this file to:", "Rename File", strFileName)
    If (strNewName = "") Or (strNewName = strFileName) Then ' (Check whether user cancelled)
        Exit Sub
    End If

    ' Save file with new name:
    ActiveDocument.SaveAs2 FileName:=strNewName             'for Word docs
    'ActiveWorkbook.SaveAs2 FileName:=strNewName            'for Excel docs
    'Application.ActivePresentation.SaveAs FileName:=strNewName      'for Powerpoint presentations*

    ' Delete old file:
    With New FileSystemObject   ' (this line requires: Tools->References->Microsoft scripting runtime)
        If .FileExists(strFileFullName) Then
            .DeleteFile strFileFullName
        End If
    End With
End Sub

*注意:虽然此宏适用于Powerpoint(上面提到的修改),但PowerPoint 无法全局保存


0

微软已经在最新的Word中加入了突破性的新功能,旨在满足您的确切需求 -

单击文件,然后单击“另存为”


2
我怀疑这正是OP所期待的。另存为不重命名文件,它只是以不同的名称保存新副本。
妮可·汉密尔顿

5
@Scandalist:讽刺的是什么?我认为我的问题很合理。我并不是说这是一个表演限制器,我只是说,就像所有繁琐的小任务一样,它需要时间和脑力。Office套件都是为了提高您的工作效率,所以从用户的角度来看,我不明白它为什么没有实现。
RoboShop

@RoboShop,公平地说,如果真正的问题是生产力,那么你可以很容易地写一个宏并将其添加到工具栏中,提示输入新的文件名,保存并关闭活动文档,重命名文档,最后打开重命名的文档。这通过“单击按钮”实现了手头的任务。
亚当

如果需要在打开时重命名文件,这应该是正确的答案。只需保存为新名称,然后删除旧文件
phuclv 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.