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
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
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.