Avatar billede trajkovski Nybegynder
26. januar 2009 - 17:14 Der er 9 kommentarer og
1 løsning

AutoFill med variabel range

Hej


Jeg forsøger at lave et autofill i Excel med en variabel range.

Det, der er kommenteret ud, virker sådan set, men jeg kan ikke få følgende kode til at fungere:
Set SourceRange = ThisWorkbook.Worksheets("Medarbejderoplysninger").Range("A1:" & kolonne_bogstav & "1")
    Set fillRange = ThisWorkbook.Worksheets("Kombinerede data (Medarbejderoplysninger&KUK)").Range("A1:" & kolonne_bogstav & antal_raekker)
    SourceRange.AutoFill Destination:=fillRange

Jeg vil gerne gøre præcis det samme, som det, der er kommenteret, gør, men jeg vil gerne gøre det uden, brugeren kan se, hvad der sker.

Jeg får fejlen "Metoden for AutoFill for klassen Range mislykkedes" - hvad gør jeg forkert?

Resten af min kode:
    Dim antal_kolonner As Integer
    Dim antal_raekker As Integer
    Dim kolonne_bogstav As String
   
    antal_kolonner = Worksheets("Medarbejderoplysninger").UsedRange.Columns.Count
    antal_raekker = Worksheets("Medarbejderoplysninger").UsedRange.Rows.Count
   
    Sheets("Medarbejderoplysninger").Select
   
    If antal_kolonner > 26 Then
    kolonne_bogstav = Chr(Int((antal_kolonner - 1) / 26) + 64) & Chr(((antal_kolonner - 1) Mod 26) + 65)
    Else
    kolonne_bogstav = Chr(antal_kolonner + 64)
    End If
   
'    Sheets("Kombinerede data (Medarbejderoplysninger&KUK)").Select
'    Range("A1").Select
'    ActiveCell.FormulaR1C1 = "=Medarbejderoplysninger!RC"
'    Selection.AutoFill Destination:=Range("A1:" & kolonne_bogstav & "1"), Type:=xlFillDefault

    MsgBox kolonne_bogstav & antal_raekker
   
    Set SourceRange = ThisWorkbook.Worksheets("Medarbejderoplysninger").Range("A1:" & kolonne_bogstav & "1")
    Set fillRange = ThisWorkbook.Worksheets("Kombinerede data (Medarbejderoplysninger&KUK)").Range("A1:" & kolonne_bogstav & antal_raekker)
    SourceRange.AutoFill Destination:=fillRange
   
'    Range("A1:" & kolonne_bogstav & "1").Select
'    Selection.AutoFill Destination:=Range("A1:" & kolonne_bogstav & antal_raekker), Type:=xlFillDefault
Avatar billede kabbak Professor
26. januar 2009 - 18:08 #1
Public Sub test()
    Dim antal_kolonner As Integer
    Dim antal_raekker As Integer, SourceRange As Range, fillRange As Range


    antal_kolonner = Worksheets("Medarbejderoplysninger").UsedRange.Columns.Count
    antal_raekker = Worksheets("Medarbejderoplysninger").UsedRange.Rows.Count

    Set SourceRange = ThisWorkbook.Worksheets("Medarbejderoplysninger").Range(Cells(1, 1), Cells(1, antal_kolonner))
    'fra nedenstående linje
    'ThisWorkbook.Worksheets("Kombinerede data (Medarbejderoplysninger&KUK)")
    ' det ser underligt ud, er det rigtig ??
    Set fillRange = ThisWorkbook.Worksheets("Kombinerede data (Medarbejderoplysninger&KUK)").Range(Cells(1, 1), Cells(antal_raekker, antal_kolonner))
    SourceRange.AutoFill Destination:=fillRange

End Sub
Avatar billede trajkovski Nybegynder
27. januar 2009 - 16:33 #2
Hej Kabbak


Nu har jeg prøvet din kode, og jeg får følgende fejl: "Run-time error 1004: Application-defined or obejct-defined error".

Det er linien Set SourceRange, der fejler.

Hvad er det, du synes ser underligt ud?
Avatar billede kabbak Professor
27. januar 2009 - 18:15 #3
det der ser underligt ud er
"Kombinerede data (Medarbejderoplysninger&KUK)"
har du virkelig et ark der hedder det ??
Avatar billede trajkovski Nybegynder
30. januar 2009 - 10:07 #4
Nej det har jeg ikke... Men navnet er ændret med søg og erstat, så det burde ikke volde problemer...

Hvad kan årsagen til, at scriptet fejler være?
Avatar billede kabbak Professor
30. januar 2009 - 13:36 #5
har du rettet Ark navnet "Kombinerede data (Medarbejderoplysninger&KUK)" i koden, til det ark der skal bruges. ??
Avatar billede trajkovski Nybegynder
30. januar 2009 - 16:25 #6
Ja det har jeg. Med søg og erstat.

Men det virker fint hos dig?

Jeg kører Excel 2007.
Avatar billede kabbak Professor
30. januar 2009 - 17:18 #7
jeg har testet nu, jeg kan heller ikke få det til at virke ;=))
Avatar billede trajkovski Nybegynder
06. februar 2009 - 14:41 #8
Nå ok... Nogle andre gode forslag så? :)
Avatar billede trajkovski Nybegynder
08. april 2009 - 14:57 #9
Er der virkelig ikke nogen, der kan skrive pæn kode? Hvis ikke så lukker jeg...
Avatar billede trajkovski Nybegynder
13. juli 2009 - 15:44 #10
Lukker.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester