Kopiera arbetsblad
Här demonstreras hur vi kan kopiera ett arbetsblad och få ett nytt arbetsblad utan:
- Formler - Alla formler omvandlas till konstantvärden.
- Kontroller - Alla eventuella kontroller tas bort.
- Vissa cellområden töms på sina värden.
- Arbetsbladets namn erhålls från en cells innehåll.
För ytterligare information om att lägga till blad se: Lägga till arbetsblad
För att skapa en kopia av en mallarbetsblad se: Skapa kopia av mallarbetsblad
Option Explicit
Sub Kopiera_Arbetsblad()
'© 2004 Alla rättigheter XL-Dennis
Dim stCellnamn As String, shShape As Shape
Dim wsBlad As Worksheet
Dim rnCell As Range, rnValues As Range
Dim i As Long
Application.ScreenUpdating = False
'Här kopieras det aktiva arbetsbladet och
'kopian placeras sist i arbetsboken.
i = Worksheets.Count
ActiveSheet.Copy after:=Worksheets(i)
i = i + 1
Set wsBlad = Worksheets(i)
On Error Resume Next
With wsBlad
Set rnValues = .Cells.SpecialCells(xlFormulas)
End With
'Omvandlar formler till konstanta värden
With rnValues
.Value = .Value
End With
On Error GoTo 0
'Hämtar bladnamnet
stCellnamn = CStr(wsBlad.Range("A2").Value)
'Tar bort Formulär-objekt, värden samt tilldelar bladet
'sitt namn.
With wsBlad
For Each shShape In .Shapes
shShape.Delete
Next shShape
.Name = stCellnamn
.Range("B4:B6").Value = ""
.Range("A1").Select
End With
On Error GoTo 0
Application.ScreenUpdating = True
End Sub