将Sheet中所有未受保护的单元格复制到另一个工作表并保持位置

时间:2016-08-23 07:16:39

标签: excel vba excel-vba

工作簿A中的工作表1包含一些具有受保护公式的单元格以及一些用于输入未受保护数据的单元格。有多个文件使用此结构。

我现在更新了使用相同结构的模板文件中的公式。 我想要做的是复制所有未受保护的单元格并将它们移动到新文件中的相同位置。

假设范围是A1:R99并且我在B1中有未受保护的单元格:B99和G1:G99(真实文件中有多个不同的位置,因此进入所有不同的范围需要很长时间)然后我要复制B1:B99到新文件中的相同位置。 希望有一个更好的方法来做到这一点,而不是手动输入每个范围!

1 个答案:

答案 0 :(得分:1)

假设您有' Sheet1'如果您想将所有未受保护的单元格复制到新工作表,请说“Sheet2'与他们在' Sheet1'中的位置相同,然后

Sub Foo()

If Sheets("Sheet1").ProtectContents = True Then

    Worksheets("Sheet1").Activate
    For i = 1 To 99
        For j = 1 To 18
            If Cells(i, j).Locked = False Then
                a = Cells(i, j).Value
                Worksheets("Sheet2").Activate
                Cells(i, j).Value = a
                Worksheets("Sheet1").Activate
            End If
        Next j
    Next i

End If

End Sub