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.
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
:-/ 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.