Avatar billede lisette Praktikant
06. juli 2004 - 11:58 Der er 14 kommentarer og
1 løsning

Fejl i Range-object

Hej Eksperten

Jeg har følgende kode, som fejler - hvad er det jeg gør galt? Så vidt jeg kan læse mig til i hjælp burde det kunne lade sig gøre.


Dim o As Integer
Dim j As Integer
Dim x As Range
Dim rngSum As Range
Dim lngSum As Long
Dim intAntalBev As Integer

  Workbooks("Post.xls").Activate
  rngSum = ThisWorkbook.Worksheets("Oversigt").Range(Cells(K, o), Cells(DT, o))
           
            For Each x In rngSum
                lngSum = 0
                For j = 1 To intAntalBev
                    lngSum = lngSum = x.Offset(j, 0)
                Next
                x.Value = lngSum
            Next

Dette er naturligvis kun en del af min kode - fejlen er: Application-defined or object-defined error

Håber på hurtig hjælp!!

Mvh Lisette
Avatar billede asol Nybegynder
06. juli 2004 - 12:11 #1
Du skal i hvert fald skrive Set rngSum = ... i sted for blot rngSum = og sørge for at arket Oversigt er aktivt.

/asol
Avatar billede kabbak Professor
06. juli 2004 - 12:11 #2
Workbooks("Post.xls").Activate, her aktiverer du en mappe, er den åben. ?



rngSum = ThisWorkbook.Worksheets("Oversigt").Range(Cells(K, o), Cells(DT, o))

ThisWorkbook er altid den mappe koden ligger i, og der er også der der drn laver range
Avatar billede lisette Praktikant
06. juli 2004 - 12:15 #3
Til asol

Det har jeg lige forsøgt - men det hjalp ikke - tidligere har jeg dog også prøvet helt uden variablen.

Til Kabbak
Ja, mappen er åben.  Og det er også i den mappe koden ligger, at den skal lave range.

Mvh Lisette
Avatar billede asol Nybegynder
06. juli 2004 - 12:17 #4
Er arket 'Oversigt' aktivt - Sheets("Oversigt").Activate?
Avatar billede lisette Praktikant
06. juli 2004 - 12:20 #5
Hej asol

Jeg prøvede lige at tilføje det - det hjalp heller ikke !  Andre gode forslag??

(Jeg er tilbage igen om 30 min.)

Mvh Lisette
Avatar billede bak Forsker
06. juli 2004 - 12:20 #6
hvad skal denne sætning lave
lngSum = lngSum = x.Offset(j, 0)
Avatar billede knowit-mmp Nybegynder
06. juli 2004 - 12:29 #7
Hvilken værdi har din Variabel K?
Avatar billede asol Nybegynder
06. juli 2004 - 12:40 #8
OK jeg har lige lavet en lille test. Under alle omstændigheder bør linierne i din kode:

Workbooks("Post.xls").Activate
rngSum = ThisWorkbook.Worksheets("Oversigt").Range(Cells(K, o), Cells(DT, o))

Erstattes med:

Workbooks("Post.xls").Activate
Sheets("Oversigt").Activate
Set rngSum = ThisWorkbook.Worksheets("Oversigt").Range(Cells(K, o), Cells(DT, o))

ellers vil den fejle med 'Application-defined or object-defined error'...
Avatar billede lisette Praktikant
06. juli 2004 - 13:00 #9
Hej bak
Det er en smutter - det andet = skulle naturligvis have været et +

Til knowitt-mmp
Det er ikke en variabel, men kolonne K og senere kolonne DT

Til asol
Det har jeg nu forsøgt, den fejler stadig.  Når jeg er i "debug" og kører musen over linien skriver den samme fejlmeddelelse udfor Cells(K, o) og Cells(DT, o). Kan man godt lave den henvisning på den måde ?  Opfatter den ikke K og DT som udefinerede variabler ?

Lisette
Avatar billede asol Nybegynder
06. juli 2004 - 13:08 #10
Skal dit range være kolonne K til kolonne DT?

Så skal du skrive:

Sheets("Oversigt").Activate
Set rngSum = ThisWorkbook.Worksheets("Oversigt").Range(Columns("K:DT"))
Avatar billede knowit-mmp Nybegynder
06. juli 2004 - 13:09 #11
Cells-funktionen kan ikke benytte Bogstaver som en kolonnehenvisning...du skal benytte en koordinat-henvisning, ala Cells(1,1)=A1...og så fremdeles...
Avatar billede lisette Praktikant
06. juli 2004 - 13:22 #12
Hej knowit-mmp
Det var lige præcis det der var galt. Nu får jeg ikke den fejl mere - TAK

Til asol
Det ser ud til at være løst umiddelbart (Den gør stadig ikke helt det jeg vil, men der kommer ingen fejl - så det er bare at arbejde videre) Men lige en kommentar til din sidste;  Det er jo ikke hele kolonne K til DT med kun den aktuelle rækker, som jo kommer fra variablen o.

Mvh LIsette
Avatar billede asol Nybegynder
06. juli 2004 - 13:27 #13
Sheets("Oversigt").Activate
Set rngSum = ThisWorkbook.Worksheets("Oversigt").Range(Cells(11, o), Cells(124, o))

Husk cells(række,kolonne) hvor række & kolonne er indekset/nummeret
Avatar billede asol Nybegynder
06. juli 2004 - 13:28 #14
jeg mener selvfølgelig

Sheets("Oversigt").Activate
Set rngSum = ThisWorkbook.Worksheets("Oversigt").Range(Cells(o, 11), Cells(o, 124))
Avatar billede lisette Praktikant
06. juli 2004 - 13:40 #15
Til asol

Jep - der skulle byttes om!!  Nu redede du mig lige for meget lang tids spekulation.  Jeg vil gerne give dig point også. Jeg opretter lige et nyt spørgsmål - vil du ligge et svar ??

Mvh Lisette
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
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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