我想使用 VBA 使用相同的密码保护 2 个辅助(项目)(服务)工作表, 但允许主要(综合)工作表在受保护的情况下从这些工作表中提取信息。
我目前正在使用以下内容来保护工作簿,因为我需要它在工作簿关闭时自动保护。
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim xSheet As Worksheet
Dim xPsw As String
xPsw = "####"
For Each xSheet In Worksheets
xSheet.Protect xPsw
Next
End Sub
我正在使用它从这些表格中提取信息,(项目)(服务)
Sub copyFormat()
With ThisWorkbook
.Worksheets("Project").Range("D9:TJ28").Copy
.Worksheets("Comprehensive").Range("D10:TJ29").PasteSpecial xlPasteFormats
.Worksheets("Service").Range("D9:TJ28").Copy
.Worksheets("Comprehensive").Range("D30:TJ49").PasteSpecial xlPasteFormats
End With
With ThisWorkbook
.Worksheets("Project").Range("A9:C28").Copy
.Worksheets("Comprehensive").Range("A10:C29").PasteSpecial
.Worksheets("Service").Range("A9:C28").Copy
.Worksheets("Comprehensive").Range("A30:C49").PasteSpecial
End With
End Sub
由于我希望每个人都可以访问主要(综合)工作表,因此可以使用指定的宏点击“更新”按钮,从辅助工作表(项目)(服务)中提取最新的信息,而无需解锁它们。
任何帮助将不胜感激,谢谢
请参阅上面详细我当前的文档信息
您必须将取消保护/保护添加到您的宏中:
Sub copyFormat()
Dim xPsw As String
xPsw = "####"
With ThisWorkbook
.Worksheets("Comprehensive").Unprotct xPsw '<---- add this line of code
.Worksheets("Project").Range("D9:TJ28").Copy
.Worksheets("Comprehensive").Range("D10:TJ29").PasteSpecial xlPasteFormats
.Worksheets("Service").Range("D9:TJ28").Copy
.Worksheets("Comprehensive").Range("D30:TJ49").PasteSpecial xlPasteFormats
End With
With ThisWorkbook
.Worksheets("Project").Range("A9:C28").Copy
.Worksheets("Comprehensive").Range("A10:C29").PasteSpecial
.Worksheets("Service").Range("A9:C28").Copy
.Worksheets("Comprehensive").Range("A30:C49").PasteSpecial
.Worksheets("Comprehensive").Protect xPsw '<---- add this line of code
End With
End Sub