VBA将数据从一个受保护列复制到另一个受保护列

时间:2015-07-31 16:42:54

标签: excel vba excel-vba

我在Excel中使用的工作簿有一些受保护的单元格。我无法解锁它们。我需要将数据从一个锁定的列传输到另一个也被锁定的列。我可以通过键入数据手动完成此操作,但工作簿不允许我复制/粘贴(使用VBA或常规方式)受保护列中的数据。 以下是我尝试过的代码示例,没有任何运气。

如果不解锁工作簿,这是否可行?

示例1:

Sub Requote()

Dim JDsheet As Worksheet
Set JDsheet = ActiveWorkbook.ActiveSheet

JDsheet.Range("Q26:R41").Copy JDsheet.Range("S26:T41")

示例2:

Sub Requote()

Dim JDsheet As Worksheet
Set JDsheet = ActiveWorkbook.ActiveSheet

JDsheet.Range("Q26:R41") = JDsheet.Range("S26:T41").Values

注意:我正在使用的列由合并的单元格组成。

修改 来自@Raystafarian的评论让我找到了here的帖子,这让我可以解锁受保护的表格。

对于那些在受保护工作簿上有黑客攻击解决方案的人,我会保留这个问题。

1 个答案:

答案 0 :(得分:0)

尝试以下方法:

  • 在未受保护的(新)或打开的工作表中,只需引用受保护的单元格即可检索这些值。这对我有用。

e.g。 “= Sheet1!C3”在未受保护的单元格中,其中Sheet1中的单元格C3是受保护的单元格。您可以从那里拖动公式或使用VBA在大范围内复制公式。

获取所有值后,只需将公式粘贴为普通值即可。

编辑:如果你别无选择,只能在另一个受保护的列中插入值,那么答案就不用了。