Kopiera arbetsblad


Här demonstreras hur vi kan kopiera ett arbetsblad och få ett nytt arbetsblad utan:

 

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