Avatar billede lklingenberg Nybegynder
06. august 2003 - 13:32 Der er 7 kommentarer og
1 løsning

public funktion/sub til at finde første ledige celle i kolonne

Hi,

Jeg har en sub der finder første ledige celle i en kolonne:

Public Sub firstEmptyCell()
    ActiveCell.End(xlDown).Select
    ActiveCell.Offset(1, 0).Select
End Sub

Når den kaldes fra en anden sub kræves det naturligvis at man befinder sig på det rigtige ark i den rigtige kolonne. Jeg tænkte på om man ikke kunne lave en funktion, så man kan bestemme arket og kolonnen med det samme. Noget a la:

Public Function firstEmptyCell(MySheet As String, _
  MyCol As String) As ?
    Sheets(MySheet).Range(MyCol & "1").Select
    Selection.End(xlDown).Select
    ActiveCell.Offset(1, 0).Select
End Function

og så kalde funktionen i en sub med noget a la:

Sub test()
    FindEmpty("Spam List", "B").Select
End Sub

...eller kan det laves meget smartere?

/Lars
Avatar billede jkrons Professor
06. august 2003 - 14:45 #1
Hvorfor ikke bare

    Sheets("Ark2").Select
    Range("C1").Select
    ActiveCell.End(xlDown).Select
    ActiveCell.Offset(1, 0).Select

Vælger c-kolonnen i ark2. Men kræver selvfølgelig at det altid er samme ark og kolonne, der skal selectes
Avatar billede lklingenberg Nybegynder
06. august 2003 - 14:48 #2
det er netop det... det er ikke altid samme ark og kolonne. Derfor ville jeg også gerne have en funktion jeg altid kan bruge (og hvor man måske ikke skulle bruge select så meget, da det iflg. bak sløver koden en del).
Avatar billede jkrons Professor
06. august 2003 - 14:52 #3
Det er rigtigt, men du kan så vidt jeg ved ikke selecte ark og celle i samme handling. Hvor kommer Ark- og kolonnenavn fra?
Avatar billede jkrons Professor
06. august 2003 - 14:55 #4
Du kan undgå select helt på denne måde:

    Sheets("Ark2").Activate
    Range("C1").Activate
    ActiveCell.End(xlDown).Offset(1, 0).Activate

Så nu er det bare at få de vafriable informationer ind, men det kræver at man ved, hvor de kommer fra.
Avatar billede lklingenberg Nybegynder
06. august 2003 - 14:57 #5
ark og kolonne er afhængige af hvilken sub der kører - i nogle tilfælde skal jeg fx finde første ledige celle i ark1, kolonneB i andre tilfælde ark2, kolonneA. men både ark og kolonne er specifikke værdier i den enkelte subs og altså ikke "dynamiske".
Avatar billede jkrons Professor
06. august 2003 - 15:03 #6
Du kan lave denne function:

Public Function FFC(ark As String, kolonne As String)
    Sheets(ark).Activate
    Range(kolonne).Activate
    ActiveCell.End(xlDown).Offset(1, 0).Activate
End Function

Den kan du så kalde med:

Call FCC("Ark2", "C1").

Sidstnævnte kan også lægges ind i variabler
Avatar billede lklingenberg Nybegynder
06. august 2003 - 15:09 #7
Jeps! så var jeg ikke helt afmarcheret. Call metoden kendte jeg dog ikke.
Tak for det!
Avatar billede jkrons Professor
06. august 2003 - 15:12 #8
Velbekomme.
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