防止发送打开的Excel文档

时间:2018-05-16 13:38:53

标签: excel email document

是否有可能阻止用户在Excel文档仍处于打开状态时发送该文档?

我必须让我的文件清除某些单元格(包含个人数据/个人身份信息)。我成功地通过使用在保存之前生成提示的函数并且仅在接受时保存(并清除相应的字段)并且在取消时不执行任何操作来成功完成此操作。

但是,用户仍然可以发送包含关键数据的已打开文档。

我知道这是一段时间,但有可能阻止这种情况吗?

就像,某些校验和/加密恶作剧在打开时会破坏文档,从而使得此状态下的已发送副本无法使用/无法访问/损坏。该文件只会被修复"保存时再次(因此也删除了关键数据)。

我只能想象这样的事情,因为禁止其他程序读取打开的excel文档似乎很疯狂。

非常感谢任何帮助。提前谢谢!

向大家问好! (第一篇文章)这个地方是一个救星。

编辑:澄清: 1.用户获取excel文档。 2.他们将员工/申请人等的个人资料输入其中,我的文件也很精美。 3.生成一个输出,需要进入其他工具。 4. excel文件的目的已经完成,它必须清除自己的污秽个人数据。

这是如前所述实现的。保存等都已整理好。

我被告知要处理的问题是,在文档仍然包含个人数据时,无法发送文档。关闭它会擦除它,但在打开时,它仍然 包含个人数据,并且可以与Outlook等进行交互。

有没有办法在打开时阻止与文档的这种交互?或者在打开时使文档损坏,因此在此状态下复制文档不会传输任何个人数据?

2 个答案:

答案 0 :(得分:1)

并欢迎。

你的问题有点奇怪,我不确定什么是完美的方式,但让我尝试回答并给你一些建议:

答:您可以使用指定单元格中的代码字。保存文件时,它会将单词放在该单元格中。当单词不存在时......好吧,假设您可以在Workbook.Open事件中创建一些宏,该事件将删除所有单元格值并将文件保存在其当前位置。显然把密码放在vba编码上!

B:我认为更可靠的方法是在个人工作空间中处理文件,如果可能,保存文件后通过vba创建副本到共享文件夹。

祝你好运。

答案 1 :(得分:1)

答:操作校验和/临时加密会非常危险,因为如果您的代码崩溃或暂停并关闭,文件损坏或加密也是如此,因此信息可能会丢失。

B:您可以在编辑时将文件复制到临时文件。

C:您可以阻止excel的保存/自动保存功能,这样您的编辑就不会被中途保存。(这不是一个很好的解决方案,但解决方案可能非常简单。)

编辑:

对于选项C:

将其插入工作簿,在保存之前按照命名运行。

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
//INSERT INSTRUCTION TO REMOVE PERSONAL DATA
End Sub

这样,在保存文件之前删除数据,因此任何保存的状态都应该是干净的。但是,宏停用的工作簿无法解决此问题,因此您应该在工作簿打开时添加一个事件,通过VBA解锁工作表以避免该缺陷。