I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
Mit problem er nedenstående makro som opretter et nyt ark og derefter kopiere en master over i det, men Excel går fuldstændig i stå og jeg kan kun lukke igen ved hjælp af Windows Jobliste.
Sub AddWorksheetExample() Range("o2").Select Dim wksNewSheet As Excel.Worksheet Dim wksNewSheets As Excel.Worksheet detteark = ActiveSheet.Name navn = ActiveCell.Value Set wksNewSheet = Worksheets.Add wksNewSheet.Name = navn Sheets(detteark).Activate Selection.ClearContents Sheets("Master2").Select Selection.Copy wksNewSheet.Select Cells.Select ActiveSheet.Paste End Sub
prøv: Sub addArk() Worksheets.Add.Name = Range("O2") detteark = ActiveSheet.Name Sheets("Master2").Select Range(Range("A1"), ActiveCell.SpecialCells(xlLastCell)).Copy Sheets(detteark).Range("A1") End Sub
Hej excelent, kan man få din kode til også at kopiere celle størrelserne med?
Din kode låser ikke arket som tidligere, har dog fundet ud af at det var en kode der sikre tal indtastning i visse celler, der lavede ravage. Den er fjernet nu da der har været problemer med den før også.
Jeg står på "Index" siden i celle "o2" taster et nr. (som bliver det nye arks nr.) trykker på en "opret knap" på siden, hvor makroen så skal kopiere "Master2" over i det nye ark.
Din første kode virkede også fint, bortset fra at den ikke kopiere celle størrelserne med fra "Master2"
Sub AddWorksheetExample() Range("o2").Select Dim wksNewSheet As Excel.Worksheet Dim wksNewSheets As Excel.Worksheet detteark = ActiveSheet.Name navn = ActiveCell.Value Set wksNewSheet = Worksheets.Add wksNewSheet.Name = navn Sheets(detteark).Activate Selection.ClearContents Sheets("Master2").Select Selection.Copy wksNewSheet.Select Cells.Select ActiveSheet.Paste End Sub
Koden der har drillet fra starten så sådan her ud:
'Sikre rigtig indtastning Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) If Not Intersect(Target, Range("Q27")) Is Nothing Then If Not IsNumeric(Target) Then Target = "" MsgBox " Tast tal !!!" Target.Select End If End If
If Not Intersect(Target, Range("AB27")) Is Nothing Then If Not IsNumeric(Target) Then Target = "" MsgBox " Tast tal !!!" Target.Select End If End If
If Not Intersect(Target, Range("F49")) Is Nothing Then If Not IsNumeric(Target) Then Target = "" MsgBox " Tast tal !!!" Target.Select End If End If
If Not Intersect(Target, Range("Q37")) Is Nothing Then If Not IsNumeric(Target) Then Target = "" MsgBox " Tast tal !!!" Target.Select End If End If
If Not Intersect(Target, Range("Q49")) Is Nothing Then If Not IsNumeric(Target) Then Target = "" MsgBox " Tast tal !!!" Target.Select End If End If
If Not Intersect(Target, Range("Q53")) Is Nothing Then If Not IsNumeric(Target) Then Target = "" MsgBox " Tast tal !!!" Target.Select End If End If
If Not Intersect(Target, Range("AB37")) Is Nothing Then If Not IsNumeric(Target) Then Target = "" MsgBox " Tast tal !!!" Target.Select End If End If
If Not Intersect(Target, Range("AM19")) Is Nothing Then If Not IsNumeric(Target) Then Target = "" MsgBox " Tast tal !!!" Target.Select End If End If
If Not Intersect(Target, Range("F66:F70")) Is Nothing Then If Not IsNumeric(Target) Then Target = "" MsgBox " Tast tal !!!" Target.Select End If End If
If Not Intersect(Target, Range("Q66:Q70")) Is Nothing Then If Not IsNumeric(Target) Then Target = "" MsgBox " Tast tal !!!" Target.Select End If End If
If Not Intersect(Target, Range("AB66:AB70")) Is Nothing Then If Not IsNumeric(Target) Then Target = "" MsgBox " Tast tal !!!" Target.Select End If End If
If Not Intersect(Target, Range("AM66:AM70")) Is Nothing Then If Not IsNumeric(Target) Then Target = "" MsgBox " Tast tal !!!" Target.Select End If End If
If Not Intersect(Target, Range("AX66:AX70")) Is Nothing Then If Not IsNumeric(Target) Then Target = "" MsgBox " Tast tal !!!" Target.Select End If End If
If Not Intersect(Target, Range("AX72")) Is Nothing Then If Not IsNumeric(Target) Then Target = "" MsgBox " Tast tal !!!" Target.Select End If End If End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) If Not Intersect(Target, Range("Q27,AB27,F49,Q37,Q49,Q53,AB37,AM19,F66:F70,Q66:Q70,AB66:AB70,AM66:AM70,AX66:AX70,AX72")) Is Nothing Then If Not IsNumeric(Target) Then Target = "" MsgBox " Tast tal !!!" Target.Select End If End If End Sub
For at forhindre automatiske koder i at køre, mens man kører en normal makro, så gør sådan
Sub AddWorksheetExample()
Application.EnableEvents = False
Range("o2").Select Dim wksNewSheet As Excel.Worksheet Dim wksNewSheets As Excel.Worksheet detteark = ActiveSheet.Name navn = ActiveCell.Value Set wksNewSheet = Worksheets.Add wksNewSheet.Name = navn Sheets(detteark).Activate Selection.ClearContents Sheets("Master2").Select Selection.Copy wksNewSheet.Select Cells.Select ActiveSheet.Paste
Takker og bukker.. kan så sige at det er jeg bestemt ikke alene om :-)
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.