我有一个宏可以将源工作表中的单元格复制到当前工作表上。
我已使用以下内容保护了所有工作表,以允许 vba 仍然运行:
Sub ProtectAllSheets()
Dim ws As Worksheet
For Each ws In Worksheets
ws.Protect,UserInterFaceonly:=True
Next ws
End Sub
复制/粘贴的宏在任何情况下都可以正常工作,但现在我用上面的代码保护它只有在粘贴到同一个源表时才有效。
如果粘贴到不同的工作表上,我会收到一个运行时错误,指出它是只读的。
包括来源在内的所有工作表都以上述方式受到保护。
运行时错误指向宏中的这行代码:
copySheet.Range("2:" & copySheet.Cells(Rows.Count,1).End(xlUp).Row).Copy .Rows(LRow)
Dim copySheet As Worksheet
Dim pasteSheet As Worksheet
Dim LRow As Long,i As Long
Set copySheet = Worksheets("Template")
Set pasteSheet = activeSheet
With pasteSheet
If Application.WorksheetFunction.CountA(.Cells) = 0 Then
copySheet.Rows(1).Copy .Rows(1)
LRow = 2
Else
LRow = .Range("A" & .Rows.Count).End(xlUp).Row + 1
End If
copySheet.Range("2:" & copySheet.Cells(Rows.Count,1).End(xlUp).Row).Copy .Rows(LRow)
End With
End Sub
这里可能发生什么,我该如何纠正?