【问题标题】:Copy all unprotected cells in Sheet to another sheet and keep position将工作表中所有未受保护的单元格复制到另一张工作表并保持位置
【发布时间】:2016-08-23 16:30:13
【问题描述】:

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

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

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

【问题讨论】:

  • 到目前为止你尝试过什么?请提供你得到的代码。如果您没有,请从小处着手,逐步进行。访问不同的工作簿、循环单元格、检查单元格属性等。

标签: vba excel


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-12
    • 1970-01-01
    • 2013-09-22
    • 1970-01-01
    相关资源
    最近更新 更多