我有一个庞大的Excel电子表格,我需要允许其访问大量用户,以便他们可以为其客户使用它,但是我不希望他们能够覆盖原始文件(可以轻松设置变量) (在Excel中)或将其文件保存在当前文件夹之外-因此我想将其强制为“ saveas”模式,并将文件强制保存在该文件夹中。否则,他们将无法保存。我不是VBA专家,我发现了很多可能有用的示例,但似乎没有什么是我真正需要的,或者我不够聪明,无法弄清楚。我找到了此代码,但不确定它是否解决了该问题。救命?
我曾尝试在GPO中管理此操作,但似乎所有操作都使他们能够下载文件夹并保存在其他位置。
Sub ExampleToSaveWorkbookSet()
Dim wkb As Workbook
'Adding New Workbook
Set wkb = Workbooks.Add
'Saving the Workbook
wkb.SaveAs "C:\WorkbookName.xls"
'OR
'wkb.SaveAs Filename:="C:\WorkbookName1.xls"
End Sub
预期输出是修改后的Excel文件,该文件以不同的名称或根本没有保存在原始目录中。
答案 0 :(得分:0)
这是一个在打开状态下运行的宏,并立即以.xlsx格式保存到您可以指定的用户位置。不幸的是,原始文件必须是.xlsm才能存储宏。 该宏位于“ ThisWorkbook”对象中。当您打开工作簿时,它将在复制之前退出。
Private Sub Workbook_Open()
Dim wb As Workbook
Set wb = ActiveWorkbook
vWbName = wb.Name
vUserProf = Environ("USERPROFILE")
vx = InStr(1, vUserProf, "Users\")
If "<Use your own profileID>" = Mid(vUserProf, vx + 6) Then Exit Sub
vDir = vUserProf & "\Downloads\"
vWbName = Left(vWbName, Len(vWbName) - 5) & ".xlsx"
wb.SaveAs vDir & vWbName, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
MsgBox "You are now using a copy of the original"
End Sub