Word 2013,VBA创建Normal.dotm的副本

时间:2015-12-08 20:21:44

标签: vba ms-word word-vba

我的工作场所正在为微软办公室推出一些大型更新。我试图设置一个VBA宏来运行在每个人的计算机上以创建一个包含Normal.dotm副本的新文件夹,这样如果(上帝禁止)出现问题,我们可以恢复Normal.dotm。这很重要,因为每个人都有不同的功能区布局和不同的宏和设置,我们不想丢失。

我的问题是我有一个功能正常的宏,但是当我在Normal.dotm上尝试它时,它会给出Permission Denied错误,因为FileCopy功能无法在Normal.dotm上运行。

代码:

Private Sub CopyFiles_Click()
sUserName = Environ$("username")

Dim BackupDir As String
BackupDir = "C:\Users\" + sUserName + "\Desktop\Backup for Normal - DO NOT DELETE"

If FileFolderExists(BackupDir) Then
Else
    MkDir BackupDir
End If

If FileFolderExists("C:\Users\" + sUserName + "\AppData\Roaming\Microsoft\Templates\Normal.dotm") Then
    FileCopy "C:\Users\" + sUserName + "\AppData\Roaming\Microsoft\Templates\Normal.dotm", (BackupDir + "\Normal.dotm")
End If

End Sub

我有" FileFolderExists"我只是没有包含它来节省空间(工作正常)

我的问题是,有什么方法可以解决这个问题(一直在寻找并空手而归),还是有更好的方法来做到这一点?

1 个答案:

答案 0 :(得分:0)

试试这个VBScript(非VBA)

Dim sUserName
sUserName = CreateObject("WScript.Network").UserName

Dim BackupDir
BackupDir = "C:\Users\" + sUserName + "\Desktop\Backup for Normal - DO NOT DELETE"

dim filesys

set filesys=CreateObject("Scripting.FileSystemObject")
on error resume next
filesys.CreateFolder BackupDir
on error goto 0
filesys.CopyFile "C:\Users\" & sUserName & "\AppData\Roaming\Microsoft\Templates\Normal.dotm", (BackupDir & "\Normal.dotm")