是否有可能阻止用户在Excel文档仍处于打开状态时发送该文档?
我必须让我的文件清除某些单元格(包含个人数据/个人身份信息)。我成功地通过使用在保存之前生成提示的函数并且仅在接受时保存(并清除相应的字段)并且在取消时不执行任何操作来成功完成此操作。
但是,用户仍然可以发送包含关键数据的已打开文档。
我知道这是一段时间,但有可能阻止这种情况吗?
就像,某些校验和/加密恶作剧在打开时会破坏文档,从而使得此状态下的已发送副本无法使用/无法访问/损坏。该文件只会被修复"保存时再次(因此也删除了关键数据)。
我只能想象这样的事情,因为禁止其他程序读取打开的excel文档似乎很疯狂。
非常感谢任何帮助。提前谢谢!
向大家问好! (第一篇文章)这个地方是一个救星。
编辑:澄清: 1.用户获取excel文档。 2.他们将员工/申请人等的个人资料输入其中,我的文件也很精美。 3.生成一个输出,需要进入其他工具。 4. excel文件的目的已经完成,它必须清除自己的污秽个人数据。
这是如前所述实现的。保存等都已整理好。
我被告知要处理的问题是,在文档仍然包含个人数据时,无法发送文档。关闭它会擦除它,但在打开时,它仍然 包含个人数据,并且可以与Outlook等进行交互。
有没有办法在打开时阻止与文档的这种交互?或者在打开时使文档损坏,因此在此状态下复制文档不会传输任何个人数据?
答案 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解锁工作表以避免该缺陷。