ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Position of Chr(10) (https://www.excelbanter.com/excel-programming/334788-position-chr-10-a.html)

Zurn[_28_]

Position of Chr(10)
 

I have a string with *Chr(10)* in it.

I want to know the position of this Chr(10) so I can cut off the string
starting from this Chr(10).

What function gives this position?

Thx


--
Zurn
------------------------------------------------------------------------
Zurn's Profile: http://www.excelforum.com/member.php...o&userid=14645
View this thread: http://www.excelforum.com/showthread...hreadid=387930


davidm

Position of Chr(10)
 

Function SnipString(rng)
x = Mid(rng, Application.Find(Chr(10), rng) + 1, Len(rng))
Loc = x
End Function


--
davidm
------------------------------------------------------------------------
davidm's Profile: http://www.excelforum.com/member.php...o&userid=20645
View this thread: http://www.excelforum.com/showthread...hreadid=387930


keepITcool

Position of Chr(10)
 


in a worksheetfunction you'd use the search or find function
=SEARCH(CHAR(10),a1)

in VBA:

use the InStr function.
dim iPos%
ipos = instr("where's the linefeed", vblf)

xl2000 and newer also have an InstrRev() function
which search from the end of the string to give you the LAST occurance
of the substring.

note:
vblf is a constant used in VB(a) for chr(10)
vbcr = chr(13)

see VBA help for the full monty.


--
keepITcool
| www.XLsupport.com | keepITcool chello nl | amsterdam


Zurn wrote :


I have a string with *Chr(10)* in it.

I want to know the position of this Chr(10) so I can cut off the
string starting from this Chr(10).

What function gives this position?

Thx


keepITcool

Position of Chr(10)
 

David,

i would NOT use the FIND worksheetfunction for this.
it's many times slower than instr.

WHY then len(s)??
- it's optional for vba's mid function.
- it should be len(s) - iPos


Sub USEinstrNOTfind()
Dim s$, r$, n&, m&, t(1)
m = 100000
s = "Find the line" & vbLf & "feed"

t(0) = Timer
For n = 1 To m
r = Mid$(s, Application.Find(vbLf, s) + 1)
Next
t(0) = Format(Timer - t(0), "0.00")

t(1) = Timer
For n = 1 To m
r = Mid$(s, InStr(1, s, vbLf) + 1)
Next
t(1) = Format(Timer - t(1), "0.00")
MsgBox Join(t, vbLf)

End Sub



--
keepITcool
| www.XLsupport.com | keepITcool chello nl | amsterdam


davidm wrote :


Function SnipString(rng)
x = Mid(rng, Application.Find(Chr(10), rng) + 1, Len(rng))
Loc = x
End Function



All times are GMT +1. The time now is 09:20 PM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
ExcelBanter.com