Avatar billede tipsen Nybegynder
10. december 2002 - 11:35 Der er 4 kommentarer og
2 løsninger

VBA / Excel 2000 / Find første tomme celle i kolonne

Hej eksperter

Hvordan vælger jeg simplest muligt den første tomme celle i en kolonne i et regneark - dvs. jeg vil selecte første tomme celle og resultatet skal være et range som peger på cellen.

Mvh

tipsen
10. december 2002 - 11:38 #1
Worksheet("Ark1").Range("A" & Worksheet("Ark1").Range("A1").End(xlDown).Row)
Avatar billede tipsen Nybegynder
10. december 2002 - 11:47 #2
Fungerer ikke... - min vba kan ikke genkende syntaksen og den fejler også, hvis der kun står noget i første række (Det var ca. det samme jeg selv nåede frem til ved at optage en makro)
10. december 2002 - 11:50 #3
Det kan være det er fordi det hedder WorksheetS og ikke worksheet som jeg har skrevet i begge tilfælde.

Worksheets("Ark1").Range("A" & Worksheets("Ark1").Range("A1").End(xlDown).Row)
Avatar billede martin_moth Mester
10. december 2002 - 13:36 #4
Eller du kan loope igennem rækkerne

Sub Makro1()
  Dim Rækkenr As Long
  Do While Rækkenr < 65536
    Rækkenr = Rækkenr + 1
    If Worksheets("Ark1").Cells(Rækkenr, 1).Value <> "" Then
      MsgBox "I rækken " & Rækkenr & " er indholdet af cellen " & Worksheets("Ark1").Cells(Rækkenr, 1).Value
      Exit Sub
    End If
  Loop
  MsgBox "Alle celler er tomme"
End Sub

Ja - jeg er altså fan af .Cells(i,j)  ;o)))
Avatar billede csn Nybegynder
10. december 2002 - 18:33 #5
Følgende funktion returnere din tomme celle som range:

Public Function FindTomCelle(kolonne As Range) As Range
    Dim celle As Range
    For Each celle In kolonne
        If celle.Value = "" Then
            Set FindTomCelle = celle
            Exit Function
        End If
    Next
End Function

Funktionens parameter kan sagtens være et range over flere kolonner.
Avatar billede tipsen Nybegynder
10. december 2002 - 22:15 #6
Mange tak for forslagene - jeg endte op med et helt andet alternativ, som måske ikke er så oplagt i forhold til formuleringen af mit spørgsmål, men alligevel virker fint i mit tilfælde.

ThisWorkbook.Worksheets("arknavn").Activate
Worksheets("arknavn").Range("A1").Activate
Set TmpCell = ActiveCell.Offset(ActiveCell.CurrentRegion.Rows.Count, 0)
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