Slettet bruger
08. september 2006 - 08:37
Der er
3 kommentarer og
1 løsning
Kopier spredte celler
Hej
Starten af nedenstående kode har Bak været så venlig og dele med os andre. Den bliver forholdsvis brugt flittigt, dog støder den engang imellem på det problem at der laves run-time error ved denne linie "start.Offset(0, x) = Worksheets("Indtast").Range(CellsToCopy(x))" (fejlkode -2147417848 (80010108), Method '_Default' of object 'Range' failed) Fejlen opstår når man trykker på den knap jeg har lavet til at starte makroen og de celler der skal kopieres fra er tomme? Hvordan får jeg tilrettet koden så fejlen ikke opstår?
Private Sub KopierSpredteCeller()
Dim CellsToCopy
Dim x As Long
Dim start As Range
Worksheets("Indtast").Range("B7").Select
CellsToCopy = Array("B7", "B4", "C7", "C12", "C13", "C14", "C10", "D10", "B10", "D7", "E7", "F7", "G7", "C16", "C19", "C20", "C21", "F19", "F20", "F21")
Set start = Worksheets("POSTER").Range("A5000").End(xlUp).Offset(1, 0)
For x = LBound(CellsToCopy) To UBound(CellsToCopy)
start.Offset(0, x) = Worksheets("Indtast").Range(CellsToCopy(x))
Next
Worksheets("POSTER").Select
ActiveWindow.SmallScroll ToRight:=0
Application.Goto Reference:="R6C1:R5000C20"
Selection.Sort Key1:=Range("B5"), Order1:=xlAscending, Key2:=Range("D5") _
, Order2:=xlAscending, Header:=xlNo, OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2:= _
xlSortNormal
Worksheets("POSTER").Select
Range("E1").Select
Worksheets("Indtast").Select
End Sub
09. september 2006 - 08:54
#1
Jeg har ikke kunnet fremprovokere nogen fejl, selv med tomme celler
men prøv evt. at indsætte denne i linie 5
On Error GoTo ud
og denne i næstsidste linie lige før End Sub
ud:
09. september 2006 - 10:23
#2
Heller ikke her...
Dog skal du være opmærksom på at hvis der mangler den første af cellerne, sker den aktuelle overførsel fint, men den næste vil gå galt og overskrive den sidste linie i POSTER. Det skyldes at du ved hjælp af kolonne A i poster finder hvor den næste linie skal anbringes.
Slettet bruger
11. september 2006 - 07:34
#3
Jeg har fundet ud af at hvis arket POSTER har autofilter på og man har udvalgt nogle dato, så bliver sidste linie altid overskrevet, som bak skriver.
Jeg har fjernet følgende fra koden:
Worksheets("POSTER").Select
ActiveWindow.SmallScroll ToRight:=0
Application.Goto Reference:="R6C1:R5000C20"
Selection.Sort Key1:=Range("B5"), Order1:=xlAscending, Key2:=Range("D5") _
, Order2:=xlAscending, Header:=xlNo, OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2:= _
xlSortNormal
Dertil har jeg i ThisWorkbook lagt følgende kode ind i Sub'en Workbook_Open:
With Worksheets("POSTER")
If .AutoFilterMode Then
.Rows("4:4").autofilter
End If
.EnableAutoFilter = False
End With
Samt i kode Worksheet_Activate() på det ark jeg bruger som indtastning. Jeg har testet og testet og det ser ud til at være lykkedes, jeg har endnu ikke set fejlen igen.
Smid et svar så deler i point.