17. september 2003 - 08:45Der er
26 kommentarer og 1 løsning
VBA Editor: Finde sidste brugte celle i en række.
Hej, er der en nem måde at finde den sidst brugte celle i en række når den rækken er kendt? Det skal bruges til at macroen sætter noget ind sidst i rækken alt efter en række handlinger, tak.
:-/ Ked af at sige det men fejlen som beskrevet i "Kommentar: dc 17/09-2003 10:31:38" kommer stadig... hvad kan der være galt? koden ligger i en funktion og jeg kan se at den aktive cell er A4.
bak -> der står ikke noget i B4 og desuden ville det være kanont hvis den først starter med at lede efter tom celle efter kolonne b, da der altid vil stå noget i kolonne A og kolonne B skal altid være tom, da den bliver brugt til status.
Jeg bruger funktionen i regnearket og den ser sådan ud: Public Function fs_ReturnLastCellFromCurrentRow() As String Dim s$, w$, i% '''''''' ' Dim c As Range ' Set c = ActiveCell.End(xlToRight).Offset(0, 1) ' c.Select '''''''' i = 67 s = Chr$(i) + CStr(piCurrentRow) w = Range(s).Value While w <> "" i = i + 1 s = Chr$(i) + CStr(piCurrentRow) w = Range(s).Value Wend fs_ReturnLastCellFromCurrentRow = s End Function
Det der ikke er kommenteret ud er det jeg bruger nu og det virker godt nok, men det andet ser ud til at være smartere :)
Jeg kan ikke lige se hvad du skal bruge så jeg har lavet 3 funktion.
1. funktion returnerer værdien af sidste celle i rækken (0 hvis ingen celler efter B) 2. funktion returnerer adressen (IV hvis ingen celler efter B) 3. funktion returnerer kolonnen (#Value hvis ingen celler efter B)
funktionen er lavet lidt om så den ikke bruger activecell, men den adresse du kommer i. feks. =fs_ReturnLastCellFromCurrentRow(A23) giver værdien af sidst (kontinuert) udfyldte celle i række 23. Starter fra kolonne B.
Public Function fs_ReturnLastCellFromCurrentRow(rng As Range) Application.Volatile fs_ReturnLastCellFromCurrentRow = Cells(rng.Row, 2).End(xlToRight).Value End Function
Public Function fs_ReturnLastCellAddressFromCurrentRow(rng As Range) Application.Volatile fs_ReturnLastCellAddressFromCurrentRow = Cells(rng.Row, 2).End(xlToRight).Address End Function
Public Function fs_ReturnLastCellColumnFromCurrentRow(rng As Range) Application.Volatile fs_ReturnLastCellColumnFromCurrentRow = Chr(Cells(rng.Row, 2).End(xlToRight).Column + 64) End Function
test lige denne istedet Public Function fs_ReturnLastCellFromCurrentRow(rng As Range) Application.Volatile If Len(Cells(rng.Row, 4)) > 0 Then fs_ReturnLastCellFromCurrentRow = Cells(rng.Row, 3).End(xlToRight).Value Else fs_ReturnLastCellFromCurrentRow = Cells(rng.Row, 3).Value End If End Function
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.