3个回答
展开全部
这个貌似不可以,只能通过外部插件,你可以加密你的VBA工程,这样别人就看不到你的代码了。或者弄个加载宏,用完了卸载你的加载宏,这样表里面就只有结果,找不到源代码了
追问
如何利用加载宏,麻烦再说的细一点,谢谢!
追答
加载宏也是VBA的一种,只不过是放在别的工作簿里面 扩展名是XLA, 加载以后别的工作簿可以共享的EXCEL 文件,代码和普通的有些许区别,我这里也不可能一下给你讲清楚,你去“EXCEL之家” 这个论坛找找相关的教程,我以前在那里找过
展开全部
我有一办法,不需要破坏代码,但可以达到同样的目的,给我发邮件nkhys@qq.com
我的办法是 先给vba加密,注意 代码一定要放到模块中,不然通过复制工作表 就可以获取代码,然后再设置工作簿打开事件,这个事件 首先产生随机码,然后根据随机码算出动态密码,只有输入动态密码才能正常使用 根据随机码算动态密码的算法只有你一个人知道 输入错误 工作薄关闭,
如果要是 宏被禁用 那么他就不能用你的代码 如果要用 启用宏,就会出现随机码, 他可以打电话 告诉你 随机码,由你算出密码 给他用 仅仅一次有效! 下次 随机码又变了 可以达到控制别人使用的目的,我就是这么干的
我的办法是 先给vba加密,注意 代码一定要放到模块中,不然通过复制工作表 就可以获取代码,然后再设置工作簿打开事件,这个事件 首先产生随机码,然后根据随机码算出动态密码,只有输入动态密码才能正常使用 根据随机码算动态密码的算法只有你一个人知道 输入错误 工作薄关闭,
如果要是 宏被禁用 那么他就不能用你的代码 如果要用 启用宏,就会出现随机码, 他可以打电话 告诉你 随机码,由你算出密码 给他用 仅仅一次有效! 下次 随机码又变了 可以达到控制别人使用的目的,我就是这么干的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Private Sub xlapp_WorkbookOpen(ByVal Wb As Workbook)
If Wb.Name <> "Booo.xla" Then '删除宏警告
Msg = MsgBox(Wb.Name & "档案将关闭前是否删除所有宏", vbYesNo, "警告")
If Msg = vbYes Then
ActiveWorkbook.Activate
For i = 1 To ActiveWorkbook.VBProject.VBComponents.Count
ActiveWorkbook.VBProject. VBComponents(i).CodeModule.DeleteLines 1, _
ActiveWorkbook.VBProject.VBComponents(i).CodeModule.CountOfLines
Next i
End If
End If
End Sub
试试上面的代码能解决吗
If Wb.Name <> "Booo.xla" Then '删除宏警告
Msg = MsgBox(Wb.Name & "档案将关闭前是否删除所有宏", vbYesNo, "警告")
If Msg = vbYes Then
ActiveWorkbook.Activate
For i = 1 To ActiveWorkbook.VBProject.VBComponents.Count
ActiveWorkbook.VBProject. VBComponents(i).CodeModule.DeleteLines 1, _
ActiveWorkbook.VBProject.VBComponents(i).CodeModule.CountOfLines
Next i
End If
End If
End Sub
试试上面的代码能解决吗
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询