05. november 2012 - 14:35Der er
1 kommentar og 1 løsning
Template Sheet
Hej
Jeg har følgende kode som gendanner et sheet tilbage baseret på et template sheet. Koden fungerer egentlig perfekt, når man står i det sheet, som man ønsker gendannet.
Mit problem er, at jeg ønsker at gendanne et sheet ved at trykke på en knap i et andet sheet. Det kan jeg ikke helt få til at fungere.
EKSEMPEL: Sheet1: Knap til at gendanne Sheet2. Sheet2: Sheetet jeg ønsker gendannet TemplateSheet: Her har jeg lavet min template.
KODE: Sub useTemplate() Dim aWs As Worksheet Dim tempWs As Worksheet Set tempWs = Worksheets("TemplateSheet") Dim sWs As String Set aWs = ActiveSheet sWs = aWs.Name With Application .ScreenUpdating = False .DisplayAlerts = False On Error Resume Next With tempWs .Visible = 1 .Copy after:=ThisWorkbook.Worksheets(Worksheets.Count) .Visible = 2 End With aWs.Delete With ActiveSheet .Name = sWs End With On Error GoTo 0 .ScreenUpdating = True .DisplayAlerts = True End With End Sub
Nu er den der næsten. Men nu laver den også en kopi af template sheetet, og det skal den jo ikke....
KODE: Dim aWs As Worksheet Dim tempWs As Worksheet Set tempWs = Worksheets("booking request template") Dim sWs As String Set aWs = Worksheets("booking request") sWs = aWs.Name With Application .ScreenUpdating = False .DisplayAlerts = False On Error Resume Next With tempWs .Visible = 1 .Copy after:=Worksheets("booking request") .Visible = 2 End With aWs.Delete With Worksheets("booking request") .Name = sWs End With On Error GoTo 0 .ScreenUpdating = True .DisplayAlerts = True End With
' delete sheet if it exists - do not display alert Application.DisplayAlerts = False On Error Resume Next Sheets("booking request").Delete On Error GoTo 0
Dim Sh As Worksheet, TemplateSh As Worksheet Dim ShNum As Integer, HighestNum As Integer Dim SheetCoreName As String
' new sheet name SheetCoreName = "booking request"
' template sheet name Set TemplateSh = Sheets("booking request template")
' copy new sheet TemplateSh.Copy after:=Sheets(Sheets.Count)
' make new sheet visible ActiveSheet.Visible = xlSheetVisible
' rename sheet ActiveSheet.Name = SheetCoreName
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.