我有一个工作表从“workbook.protected”复制到新的问题。宏执行如下操作:首先取消保护所需工作表,然后创建新工作簿,将工作表复制到新工作簿,将新工作簿中的所有单元格重新保存为.values,并保存&关闭工作簿,最后保护父工作簿。 问题在于,由于某些原因,新工作簿不包含值,而是对父工作簿的引用。你能否就这个问题征求意见? 我使用的代码如下:VBA Copy Sheet.PROTECTED到新的工作簿ISSUE
Global path As String
Global filename As String
Sub SaveSheet()
Application.ScreenUpdating = False
Dim sh1 As Worksheet
Dim sh2 As Worksheet
On Error Resume Next
Set sh1 = ThisWorkbook.Worksheets("sheet1")
Set sh2 = ThisWorkbook.Worksheets("sheet2")
sh1.Unprotect Password:="password"
sh2.Unprotect Password:="password"
Dim a As String
path = "\\path\"
filename = "file1234"
Set wb = Workbooks.Add
ThisWorkbook.Activate
Sheets("sheet1").Copy Before:=wb.Sheets(1)
ThisWorkbook.Activate
Sheets("sheet2").Copy Before:=wb.Sheets(1)
With wb
Application.DisplayAlerts = False
wb.Activate
Sheets(5).Delete
Sheets(4).Delete
Sheets(3).Delete
Sheets("sheet1").Select
Range("A1:N1000") = Range("A1:N1000").Value
Sheets("sheet2").Select
Range("A1:BW1000") = Range("A1:BW1000").Value
Application.DisplayAlerts = True
End With
ChDir path
With wb
If Len(Dir(path, vbDirectory)) = 0 Then
MkDir path
.SaveAs path & filename & ".xlsb", FileFormat:=50
Else
.SaveAs path & filename & ".xlsb", FileFormat:=50
End If
.Save
.Close
End With
With sh1
.Cells.Locked = False
.Cells.SpecialCells(xlCellTypeFormulas).Locked = True
.Protect Password:="password"
End With
With sh2
.Cells.Locked = False
.Cells.SpecialCells(xlCellTypeFormulas).Locked = True
.Protect Password:="password"
End With
End Sub
哪来的 “.....代码” :) –
这:) Nathan_Sav – Lincoln
范围( “A1:N1000”)=范围( “A1:N1000”)的价值 - 这是一个非常有趣的。公式的消失方式。它工作吗?在其他消息中,“Select”和“Activate”可能有所不同。 – Winterknell