excel - 保护 VBA Excel 不被他人保存
问题描述
我试图保护我的 Excel VBA 不被其他也在使用我的宏的人保存。我尝试使用下面的代码,但它不起作用。我想防止其他人在关闭之前以及使用Ctrl+S进行保存时保存 VBA Excel。
Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If Not SaveAsUI Then
Cancel = True
MsgBox "You cannot save this workbook"
End If
End Sub
解决方案
我使用的是 Excel 2019,无法重现您的问题。该代码按预期工作。如果我按Save我会得到消息框并且它不会保存。如果我关闭工作簿,它会询问我是否要保存,如果我Save再次按下我会得到消息框并且它不会保存。
但是您可以尝试添加一个Workbook_BeforeClose
带有 a 的事件,ThisWorkbook.Saved = True
以使 VBA 相信工作簿已被保存。这可以防止在关闭工作簿时出现询问您是否要保存的消息框。
Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ThisWorkbook.Saved = True
End Sub
Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If Not SaveAsUI Then
Cancel = True
MsgBox "You cannot save this workbook"
End If
End Sub
推荐阅读
- java - 在 Fragment 中创建 RecylerView 而无需在 Android 中设置 Fragment
- processing - 如何手动将矩阵堆栈应用于处理中的坐标
- python - 如何在 OpenCV 人脸识别器加载预训练的 yml 文件(Python)时在终端上创建加载栏?
- javascript - 如何使用 javascript 多次触发 css 动画并以最佳方式做出反应?
- python - cython 重用包装的 C++ 类
- firebase - 使用 BigQuery 时,user_pseudo_id 值在对相同数据的不同查询中不一致。有什么我想念的吗?
- python - 需要一种更好的方法来查找要在 beautifulsoup 中使用的标签
- javascript - REACT找不到图像模块
- php - 如何仅访问 php 对象索引
- javascript - Microsoft Graph api - 将文件写入我的 oneDrive