Reputation: 19
I added a macro to copy a worksheet to another worksheet, so that any changes made after that point can be compared to the original. However, my macro copies over formulas instead of just the values, so when something changes, both sheets change, and the copy serves no purpose. What I have is:
Worksheets("First Sheet").Cells.Copy _
Destination:=Worksheets("Second Sheet").Cells
Is there an easy way to fix this? Thanks!
Upvotes: 1
Views: 7994
Reputation: 43585
After your macro, you can write this one:
With Worksheets("First Sheet")
Worksheets("Second Sheet").Range(.UsedRange.Address).Cells.Value2 = .UsedRange.Value2
End With
It takes the values of the first sheet and it puts them to the second sheet. The trick with UsedRange
is needed, because Worksheets(2).Cells.Value2 = Worksheets(1).Cells.Value2
goes above the usual resources of a normal PC.
Upvotes: 1
Reputation: 96753
This will skip all formula cells in the first sheet:
Sub KopyKat()
Dim r As Range, addy As String
For Each r In Worksheets("First Sheet").Cells.SpecialCells(2)
addy = r.Address
r.Copy Destination:=Worksheets("Second Sheet").Range(addy)
Next r
End Sub
Upvotes: 0
Reputation: 33682
You need to use Copy >> PasteSpecial and paste only values, this is a 2-line syntax:
Worksheets("First Sheet").Cells.Copy
Worksheets("Second Sheet").Cells.PasteSpecial xlPasteValues
Upvotes: 1