我的工作场所正在为微软办公室推出一些大型更新。我试图设置一个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"我只是没有包含它来节省空间(工作正常)
我的问题是,有什么方法可以解决这个问题(一直在寻找并空手而归),还是有更好的方法来做到这一点?
答案 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")