05. november 2007 - 17:51Der er
8 kommentarer og 1 løsning
Hjælp til fejlmeddelse
Hej! Jeg har på ark1 en listbox og en komand knap. Jeg har lavet en makro så når brugeren vælger noget i listbox og trykker på knap så indsættes 3 rækker fra andre ark på ark1. Makroen består af mange blokke som er næsten identiske, men efterhånden har jeg lavet mange blokke så jeg får fejlmeddelelse :" Compile error-Procedure too large. Hvad kan jeg gøre? If ListBox1.Value = "Delta" Then
Worksheets("vj").Range("4:4").Copy
With Worksheets("Ark1").Range("24:24") .PasteSpecial xlPasteValues .PasteSpecial xlPasteComments End With Worksheets("vj").Range("5:5").Copy With Worksheets("Ark1").Range("26:26") .PasteSpecial xlPasteValues .PasteSpecial xlPasteComments End With Worksheets("vj").Range("6:6").Copy With Worksheets("Ark1").Range("27:27") .PasteSpecial xlPasteValues .PasteSpecial xlPasteComments End With End If
If ListBox1.Value = "Dba" Then Worksheets("vj").Range("8:8").Copy
With Worksheets("Ark1").Range("24:24") .PasteSpecial xlPasteValues .PasteSpecial xlPasteComments End With Worksheets("vj").Range("9:9").Copy With Worksheets("Ark1").Range("26:26") .PasteSpecial xlPasteValues .PasteSpecial xlPasteComments End With Worksheets("vj").Range("10:10").Copy With Worksheets("Ark1").Range("27:27") .PasteSpecial xlPasteValues .PasteSpecial xlPasteComments End With End If
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.
Du kan bryde din procedure ned i enkeltdele, så hver kopieringsblok bliver en selvstændig procedure. Derefter kan du lave en ekstra procedure med Select Case, der testet på, hvad der vælges i Listbox'en, og så kalder den relevante procedure.
Jeg har brudt min procedure i flere sub og indsæt dem i module 1 og 2, men når jeg kalder proedure så får jeg fejlmeddelse:"object required og den første linie i nedenstående procedure bliver markeret gult.
Sub data()
If listbox1.Value = "Ragna" Then
Worksheets("vj").Range("4:4").Copy
With Worksheets("Ark1").Range("24:24") .PasteSpecial xlPasteValues .PasteSpecial xlPasteComments End With End If End Sub
Select Case listbox1.value Case is = "Ragna" Call .... (navn på procedure, der kopierer det relevante") Case is = "Delta" Call .... (navn på procedure, der kopierer det relevante") osv. End Select
End sub
og så ingen IF listbox.value = i de enkelte procedurer.
With Worksheets("Ark1") If .ListBox1.Value = "Delta" Then Worksheets("vj").Range("4:4").Copy .Range ("24:24") .PasteSpecial xlPasteValues .PasteSpecial xlPasteComments Worksheets("vj").Range("5:5").Copy .Range ("26:26") .PasteSpecial xlPasteValues .PasteSpecial xlPasteComments Worksheets("vj").Range("6:6").Copy .Range ("27:27") .PasteSpecial xlPasteValues .PasteSpecial xlPasteComments End If End With
With Worksheets("Ark1") If .ListBox1.Value = "Delta" Then Worksheets("vj").Range("4:4").Copy .Range("24:24").PasteSpecial xlPasteValues .Range("24:24").PasteSpecial xlPasteComments Worksheets("vj").Range("5:5").Copy .Range("26:26").PasteSpecial xlPasteValues .Range("26:26").PasteSpecial xlPasteComments Worksheets("vj").Range("6:6").Copy .Range("27:27").PasteSpecial xlPasteValues .Range("27:27").PasteSpecial xlPasteComments End If End With
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.