Avatar billede fojensen Nybegynder
04. december 2004 - 12:49 Der er 11 kommentarer og
1 løsning

problem med at trække indhold ud af Cells(7, 25).Offset(-1, 0)

Jeg kan hente indholdet af en celle når jeg ikke kan gøre det med: Holdnavn = Range("Z7").Value

Jeg bruger en søgefunktion til at finde en celle med og vil gerne hente indholdet ind af cellen ovenover.
min nuværende kode:

Dim Holdnavn As String

    FCol = FindCol(InputInit) ' virker fint
    Cells(7, FCol).Select    ' virker fint
    Holdnavn = Cells(7, FCol).Offset(-1, 0).Select ' virker fint
    Holdnavn = Cells(7, FCol).Offset(-1, 0).Value ' virker ikke - returnere ikke cellens indhold "Hold 4"

MsgBox Holdnavn

Koden returnere ingenting - hvad er mon fejlen
Avatar billede sjap Praktikant
04. december 2004 - 13:15 #1
Gæt: Har du prøvet uden .Value ?
Avatar billede sjap Praktikant
04. december 2004 - 13:16 #2
Naah. Det skulle jo egentlig ikke gøre nogen forskel.
Avatar billede sjap Praktikant
04. december 2004 - 13:22 #3
Jeg kan ikke se noget forkert. Her virker det fint. Jeg har godt nok prøvet det i en lidt simplere udgave:

Holdnavn = Cells(4, 4).Offset(-1, 0).Value
MsgBox Holdnavn


Er du sikker på der står noget i cellen? Eller er du sikker på du kigger på den rigtige celle?
Avatar billede fojensen Nybegynder
04. december 2004 - 13:31 #4
Ja cellen indeholder teksten "Hold 4", med det er en celle der er flette og centreret - dvs. række 7 har 12 celler med navne på personer, og række 6 har én samlet celle som overskrift til de 12 personer, og det er nok det der driller,
men hvordan fanger jeg mon så indholdet ?
Avatar billede fojensen Nybegynder
04. december 2004 - 13:33 #5
hvis man indspiller en makro der skal vælge den flettede celle skriver den:
    Range("AN6:AY6").Select
Avatar billede fojensen Nybegynder
04. december 2004 - 13:46 #6
jeg står altså i en celle nedenunder der eksempelvis hedder "AS7" før jeg kører Offset(-1, 0).
Avatar billede sjap Praktikant
04. december 2004 - 14:29 #7
Prøv med

Holdnavn = Cells(ActiveCell.Row, 40).Offset(-1, 0).Value
MsgBox Holdnavn

ActiveCell.Row finder den række du står i
40 er nummeret på den første kolonne i din flettede celle (svarer til AN).
Avatar billede fojensen Nybegynder
04. december 2004 - 15:53 #8
Holdnavn = Cells(ActiveCell.Row, 40).Offset(-1, 0).Value
Ja du har ret i at så kan den hente celleindholdet "Hold 4", men tallet 40 kender jeg ikke, for det tal som variablen FCol indeholder er fra 40 og op til eksempelvis 52 - afhængig af holdstørrelse (holdene har forskellig størrlese)

hvad kan du ellers komme i tanker om af måder man kan trække på, selvom man måske står i cells(7, 47) ?
Holdnavn = Cells(ActiveCell.Row, 40).Offset(-1, 0).Value
Avatar billede fojensen Nybegynder
04. december 2004 - 15:54 #9
rettelse - den sidste linie skulle ikke have været med igen
Avatar billede sjap Praktikant
04. december 2004 - 17:07 #10
Ok, så prøv med

Holdnavn = ActiveCell.Offset(-1, 0).MergeArea.Cells(1, 1)
Avatar billede fojensen Nybegynder
04. december 2004 - 18:02 #11
Undskyld den lange svartid, men jeg er på arbejde nu...

Ja den sidste løsning er go' - ka du forklare lidt om hvad det er der sker når vi bruger MergeArea.Cells(1, 1)

mvh Folmer
Avatar billede sjap Praktikant
05. december 2004 - 12:52 #12
Hej Folmer

ActiveCell.Offset(-1, 0)  vælger (som du ved) en celle i rækken over den du står i
.MergeArea    returnerer et område (Range), hvis cellen er en del af et "flettet område"
.Cells(1, 1)  returnerer den første celle i det valgte område, hvilket altså vil sige i det flettede område. Det virker bl.a. fordi et flettet område altid får navn efter cellen øverst til venstre i området.

Mvh. Jan
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