当前位置: 首页 > 知识库问答 >
问题:

VBA Excel:在受保护的工作表上移动数据宏错误

郑鸿朗
2023-03-14
Sub My_Code()

ThisWorkbook.Sheets("Main").Range("A1") = "Main Data"
ThisWorkbook.Sheets("Secondary").Range("A2").Copy Sheets("Main").Range("B2")

End Sub
Private Sub Workbook_Open()

Sheets("Main").Protect Password:="Mypassword", UserInterfaceOnly:=True
Sheets("Secondary").Protect Password:="Mypassword", UserInterfaceOnly:=True

End Sub

并调试到thisworkbook.sheets(“secondary”)....行。

当我手动取消对主表的保护时,代码将运行。你知道为什么我不能离开Main保护吗?我是不是忘了什么?

共有1个答案

荣轶
2023-03-14

@jkpieterse给出了这个问题的解决方案,将My_Code()的第二行更改为

Thisworkbook.Sheets("Main").Range("B2").Value = ThisWorkbook.Sheets("Secondary").Range("A2").Value

然而,这在我的代码中创建了一个新的错误,在关于的注释中提到了这个错误。who在此问题背后的原因是userinterfaceonly=true不允许宏修改工作表,它只允许更改值。因此,在修改工作表时,没有办法使用保护工作的接口。从这里唯一的解决办法是:

Sub My_Code()
Dim ws as Worksheet
Set ws = ThisWorkbook.Sheets("Main")

ws.UnProtect Password:="Mypassword"

On Error GoTo ErrHandeler

ws.Range("A1") = "Main Data"
ThisWorkbook.Sheets("Secondary").Range("A2").Copy ws.Range("B2")

ws.Protect:="Mypassword"

ErrHandler:
ws.Protect:="Mypassword"
End Sub

这是下一个最安全的解决方案。

 类似资料:
  • 在输入密码(或者在本例中绕过密码)后,是否有方法显示保护宏的密码?(不查找受工作簿保护的密码)。 例如:1)打开excel,2)打开VB编辑器,3)输入密码以查看宏,4)添加显示密码的新宏。 允许我绕过密码的链接:有办法破解Excel VBA项目上的密码吗?

  • 问题内容: 从上一个私有方法春天在什么@Transactional属性的工作? 使用代理时,应仅将@Transactional注释应用于具有公共可见性的方法。如果使用@Transactional注释对受保护的,私有的或程序包可见的方法进行注释,则不会引发任何错误,但是带注释的方法不会显示已配置的事务设置。 我可以想到排除和方法的充分理由,但是为什么方法不能在事务上表现呢?以下堆栈跟踪显示了公共方法

  • 我可以想出排除和方法的充分理由,但为什么方法不会以事务性方式运行呢?以下stacktrace显示了公共方法(通过接口代理调用)的正确行为: 当调用一个“完全相同”的受保护方法(通过非接口CGLIB代理)时,我们得到如下结果: 这显然是一个设计决定(为什么?),但我认为它很值得怀疑的是,当它显然是开发人员的错误时,它却无声无息地失败了。 编辑这显然不是使用接口(只是接口中的公共方法)时的问题,但由于

  • 在< code>/users下,我有一些需要身份验证令牌的路由,还有一些不需要。为了实现这一点,我做了以下工作。 然后我按照以下方式安装这些路线。 当我向< code>/users发送POST时,它运行预期的路径,但是当< code>next()被调用时,< code > protected _ middleware 运行。这是因为它在标有“D”的行中找到了下一个< code>/users定义。

  • 我可以问一下,我如何通过脚本添加编辑器到受保护的工作表和范围中的权限?我尝试使用,它需要枚举所有的电子邮件地址,对吗?但是,有没有一个简单的或另一个方法让我做到这一点呢?如果没有别的办法,我有90张纸要一张一张修改。每个文件的电子邮件地址不相同。 我正在考虑在Google Drive中自动获得与人和组共享选项中的所有编辑器。这有可能做到吗?

  • 6xx受保护 600 Series,Repliesregardingconfidentialityandintegrity 631 Integrityprotectedreply. 632 Confidentialityandintegrityprotectedreply. 633 Confidentialityprotectedreply.