Avatar billede HansJorgenJK Nybegynder
18. juli 2014 - 10:31 Der er 8 kommentarer og
1 løsning

VBA Object Required error

Hejsa Eksperten

Jeg sidder og laver et script som skal kunne søge en tabel for værdier forskellig fra "" og derefter kopiere værdien og tilhørende værdier til et andet faneblad.
Derudover skal den springe over alle blanke felter og for at den ikke fortsætter i en uendelighed skal den stoppe ved kolonne 500.

Som jeg kan se det er koden korrekt men jeg får error Object Required ?!?!?

her er min kode

Private Sub Relation_List()
Dim hjEndRow As Long

hjcRow = hjEndRow = FLOC.Cells(1, 1).End(500, 500)

For mCol = 4 To hjEndRow
  If FLOC.Cells(10, mCol).Value = "" Then
                    GoTo lastline
  Else
    FLOC_Doc_Relation.Cells(1, 1).Value = FLOC.Cells(3, mCol).Value
    FLOC_Doc_Relation.Cells(1, 2).Value = FLOC.Cells(10, 2).Value
    FLOC_Doc_Relation.Cells(1, 3).Value = FLOC.Cells(10, mCol).Value
                             
  End If
lastline:
            mCol = mCol + 1
        Next

End Sub
Avatar billede supertekst Ekspert
18. juli 2014 - 11:46 #1
FLOC - hvad er det?
Avatar billede HansJorgenJK Nybegynder
18. juli 2014 - 11:52 #2
FLOC og FLOC_Doc_Relation er bare ark navne.
Avatar billede supertekst Ekspert
18. juli 2014 - 12:01 #3
Sheets(FLOC).
Avatar billede HansJorgenJK Nybegynder
18. juli 2014 - 12:45 #4
Tak for det, det ændrede så error til "Subscript out of range"
og det kan jeg ikke helt forstå for navnet på arket er skrevet på præcist samme måde ?
Avatar billede supertekst Ekspert
18. juli 2014 - 12:53 #5
Glemte "
Sheets("FLOC").
Avatar billede HansJorgenJK Nybegynder
18. juli 2014 - 13:56 #6
Tak for det, det hjalp på subscript fejlen :)

Nu virker scriptet som sådan.
Men af en eller anden grund får jeg ikke alle relationerne med. Er der noget i min kode der kunne antyde at den vil springe nogle kolonner over ?

Min kode som den er nu:

Private Sub Relation_List()
Dim hjEndRow As Long

Set FLOC = ThisWorkbook.Sheets("FLOC")
Set FLOC_Doc_Relation = ThisWorkbook.Sheets("FLOC_Doc_Relation")
hjEndRow = 1

        For mCol = 1 To 500
       
        If FLOC.Cells(10, mCol).Value = "x" Or FLOC.Cells(10, mCol).Value = "y" Or FLOC.Cells(10, mCol).Value = "xy" Then
                FLOC_Doc_Relation.Cells(hjEndRow, 1).Value = FLOC.Cells(3, mCol).Value
                FLOC_Doc_Relation.Cells(hjEndRow, 2).Value = FLOC.Cells(10, 2).Value
                FLOC_Doc_Relation.Cells(hjEndRow, 3).Value = FLOC.Cells(10, mCol).Value
                   
                    hjEndRow = hjEndRow + 1
            Else
            GoTo lastline
            End If
lastline:
            mCol = mCol + 1
           
        Next

End Sub
Avatar billede HansJorgenJK Nybegynder
22. juli 2014 - 14:41 #7
Nogle bud ?
Avatar billede supertekst Ekspert
22. juli 2014 - 15:10 #8
Prøv at steppe gennem koden med F8 - så vil det måske afsløres.
Avatar billede HansJorgenJK Nybegynder
14. oktober 2014 - 10:37 #9
LUKKET
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