我试图在将多个工作表从一个工作簿复制到VBA中的另一个工作表时断开与值的链接。
我遇到运行时错误'1004':工作表受到保护,但是我无法取消保护这些工作表。
问题在运行错误的函数的.Value = .Value
部分发生。我可以使用另一种方法吗?
我曾尝试wb.BreakLink
链接功能,但这没有成功。
ActiveWorkbook.Worksheets(1).Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
With ActiveSheet.UsedRange
For Each smallrng In Range("G16:Q16,G40:Q69").Areas
With smallrng
.Value = .Value
我希望输出结果将删除所有公式,并在复制后仅显示指定范围内的值。
答案 0 :(得分:0)
复制工作表也将复制保护模式。因此,如果您可以创建工作表而无需进行复制,则应该可以将值传输到新工作表中。
Option Explicit
Sub foo()
Dim newWS As Worksheet
Dim protectedWS As Worksheet
Dim smallRng As Range
Set protectedWS = Worksheets(1)
Set newWS = Worksheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
protectedWS.Cells.Copy
With newWS
.Range("A1").PasteSpecial xlPasteAll
For Each smallRng In protectedWS.Range("G16:Q16,G40:Q69").Areas
.Range(smallRng.Address).Value = smallRng.Value
Next
End With
End Sub