½Ð±Ðmid¡Bmidb¡Blen¡Blenb°ÝÃD
- ©«¤l
- 2025
- ¥DÃD
- 13
- ºëµØ
- 0
- ¿n¤À
- 2053
- ÂI¦W
- 0
- §@·~¨t²Î
- WIN7
- ³nÅ骩¥»
- Office2007
- ¾\ŪÅv
- 100
- ©Ê§O
- ¨k
- ¨Ó¦Û
- ¥x¥_¥«
- µù¥U®É¶¡
- 2011-3-2
- ³Ì«áµn¿ý
- 2024-3-14
     
|
¦^´_ 1# lionliu
§Aªº½d¨Ò¤¤ A1 = "abc123, abc 123 abc123§Ú·d¤£©w MID( ),MIDB( )¡ALEN( ) LENB( ) stuwxyz"
LEN(A1) = 64
LENB(A1) = 69
ªí¥Ü 69-64=5 ¦³5ÓÂù¦r¤¸
¤£¤F¸Ñ§An¨D¬Æ»ò? |
|
{...} ªí¥Ü»Ýn¥Î CTRL+SHIFT+ENTER ¤TÁä¿é¤J¤½¦¡
|
|
|
|
|
- ©«¤l
- 2025
- ¥DÃD
- 13
- ºëµØ
- 0
- ¿n¤À
- 2053
- ÂI¦W
- 0
- §@·~¨t²Î
- WIN7
- ³nÅ骩¥»
- Office2007
- ¾\ŪÅv
- 100
- ©Ê§O
- ¨k
- ¨Ó¦Û
- ¥x¥_¥«
- µù¥U®É¶¡
- 2011-3-2
- ³Ì«áµn¿ý
- 2024-3-14
     
|
¦^´_ 3# lionliu
½Ð¬Ý³o½g»¡©ú
http://forum.twbts.com/thread-31-1-1.html
Len ¨ç¼Æ½d¨Ò
²Ä¤@Ó½d¨Ò¨Ï¥Î Len ¶Ç¦^¬Y¦r¦êªºªø«×(¦r¤¸¼Æ)©Î¬YÅܼƪº¤j¤p(¦ì¤¸¼Æ)¡CType...End Type µ{¦¡°Ï¶ô©w¸q¤@Ó¦Ûq¸ê®Æ«¬ºA CustomerRecord¡C¦pªG¸Ó¸ê®Æ«¬ºA©w¸q¦bª«¥óÃþ§O¼Ò²Õ¤¤¡A«h¥²»Ý¥HÃöÁä¦r Private ¶}ÀY(ªí¥Ü¬°¨p¦³)¡CY©w¸q¦b¤@¯ë¼Ò²Õ¤¤¡AType ©w¸q´N¥i¥H¬° Public¡C
Type CustomerRecord ' ©w¸q¨Ï¥ÎªÌ¦Ûqªº¸ê®Æ«¬ºA¡C
ID As Integer ' ±N¦¹©w¸q©ñ¦b¤@¯ë¼Ò²Õ¤¤¡C
Name As String * 10
Address As String * 30
End Type
Dim Customer As CustomerRecord ' «Å§iÅܼơC
Dim MyInt As Integer, MyCur As Currency
Dim MyString, MyLen
MyString = "Hello World" ' ³]©wÅܼƪìÈ¡C
MyLen = Len(MyInt) ' ¶Ç¦^ 2¡C
MyLen = Len(Customer) ' ¶Ç¦^ 42¡C
MyLen = Len(MyString) ' ¶Ç¦^ 11¡C
MyLen = Len(MyCur) ' ¶Ç¦^ 8¡C
¦pªG¥ÎANSIªí¥Ü¦r¦êªº¸Ü¡A²Ä¤GÓ½d¨Ò¨Ï¥Î LenB©M¨Ï¥ÎªÌ©w¸qªº¨ç¼Æ (LenMbcs) ¶Ç¦^¬Y¦r¦êªºªø«×(¦r¤¸¼Æ)¡C
Function LenMbcs (ByVal str as String)
LenMbcs = LenB(StrConv(str, vbFromUnicode))
End Function
Dim MyString, MyLen
MyString = "ABc"
' "A" ©M "B" ¬O DBCS¥B "c" ¬OSBCS¡C
MyLen = Len(MyString)
' ¶Ç¦^¦r¦ê¤¤¦³3 ¡V3 Ó¦r¤¸¡C
MyLen = LenB(MyString)
' ¶Ç¦^ 6 ¡V 6 ¦ì¤¸¥Î©óUnicode¡C
MyLen = LenMbcs(MyString)
' ¶Ç¦^ 5 - 5Ӧ줸¥Î©óANSI¡C |
|
{...} ªí¥Ü»Ýn¥Î CTRL+SHIFT+ENTER ¤TÁä¿é¤J¤½¦¡
|
|
|
|
|
- ©«¤l
- 2025
- ¥DÃD
- 13
- ºëµØ
- 0
- ¿n¤À
- 2053
- ÂI¦W
- 0
- §@·~¨t²Î
- WIN7
- ³nÅ骩¥»
- Office2007
- ¾\ŪÅv
- 100
- ©Ê§O
- ¨k
- ¨Ó¦Û
- ¥x¥_¥«
- µù¥U®É¶¡
- 2011-3-2
- ³Ì«áµn¿ý
- 2024-3-14
     
|
¥[¤J
Function xMidB(ByVal str As String, start, length)
xMidB = StrConv(MidB(StrConv(str, vbFromUnicode), start, length), vbUnicode)
End Function
Function xLenB(ByVal str As String)
xLenB = LenB(StrConv(str, vbFromUnicode))
End Function
±Nìµ{¦¡¤¤ªº LenB §ï¬° xLenB
±Nìµ{¦¡¤¤ªº MidB §ï¬° xMidB |
|
{...} ªí¥Ü»Ýn¥Î CTRL+SHIFT+ENTER ¤TÁä¿é¤J¤½¦¡
|
|
|
|
|
- ©«¤l
- 2025
- ¥DÃD
- 13
- ºëµØ
- 0
- ¿n¤À
- 2053
- ÂI¦W
- 0
- §@·~¨t²Î
- WIN7
- ³nÅ骩¥»
- Office2007
- ¾\ŪÅv
- 100
- ©Ê§O
- ¨k
- ¨Ó¦Û
- ¥x¥_¥«
- µù¥U®É¶¡
- 2011-3-2
- ³Ì«áµn¿ý
- 2024-3-14
     
|
¦^´_ 10# lionliu
§âã¤jªº¤½¦¡§ï¬°¦Ûq¨ç¼Æ
Function xMidB(ByVal str As String, start, length)
xMidB = Evaluate("MidB(""" & str & """," & start & ", " & length & ")")
End Function
Function xLenB(ByVal str As String)
xLenB = Evaluate("LenB(""" & str & """)")
End Function
¦A¨Ó´N¬O¨ú¥Îªº¸ê®Æ³W«h
¨C20Ó¦r¨ú¤@¬q¡AY¤¤¤å¦r¦b²Ä20Ó¦r¦ì¸m¡A¥ÎEvaluate¨Ó¨Ï¥Îªí¨ç¼Æ®É·|¦Û°Ê¨ú¬°21Ó¦r¤¸¡A«O«ù¤¤¤å¦rªº§¹¾ã©Ê¡C¦ý¤U¤@¬q¬On¨ú20Ó¦r©Î19Ó¦rn¥ý©w¸q²M·¡¡C |
|
{...} ªí¥Ü»Ýn¥Î CTRL+SHIFT+ENTER ¤TÁä¿é¤J¤½¦¡
|
|
|
|
|
- ©«¤l
- 2025
- ¥DÃD
- 13
- ºëµØ
- 0
- ¿n¤À
- 2053
- ÂI¦W
- 0
- §@·~¨t²Î
- WIN7
- ³nÅ骩¥»
- Office2007
- ¾\ŪÅv
- 100
- ©Ê§O
- ¨k
- ¨Ó¦Û
- ¥x¥_¥«
- µù¥U®É¶¡
- 2011-3-2
- ³Ì«áµn¿ý
- 2024-3-14
     
|
¥»©«³Ì«á¥Ñ ML089 ©ó 2016-1-24 23:16 ½s¿è
¦^´_ 20# lionliu
ì©l³Æµù¬O¥HCHAR(13)&CHAR(10)µ²§À¡AYn«·s¤À¹j¬°20¦r¤¸®É¡ACHAR(13)&CHAR(10)µ²§À¥Î "," ¨Ó´À¥N·|¤ñ¦n¡C
¤@¡B±Ä¥Î¨ç¼Æ¤½¦¡¤èªk
¦WºÙ¤½¦¡
find_text =MIDB(STR,LOOKUP(999,IF({1,0},1,FINDB(INDIRECT("R[-1]C",),STR)+LENB(INDIRECT("R[-1]C",)))),{19;20})
STR =SUBSTITUTE(!$A$2,CHAR(13)&CHAR(10),",")
C6¤½¦¡
C6 =IF(AND(ROW(A1)>1,INDIRECT("R[-1]C",)=""),"",LOOKUP(,0/FINDB(find_text,STR),find_text))
¤½¦¡¨ä¥LÀ³¥Î®É»Ýn×§ï ¦WºÙ¤¤ªº $A$2¡A¨ä¥L¤£»Ýn³B²z¡C
¤G¡B±Ä¥ÎVBA¤èªk
É¥Îã¤jªºVBAקï¦p¤U
Sub ºI¨ú¦r¦ê()
Dim Arr
Arr = SPL(Replace([A2], Chr(13) & Chr(10), ","), 20)
Arr = Split(Arr, Chr(10))
[H6].Resize(UBound(Arr)) = Application.Transpose(Arr)
End Sub
Function SPL(ByVal xS$, xL%)
If xS = "" Then Exit Function
nL = IIf(InStr(xS, xMidB(xS, 1, 20)), 20, 19)
SPL = xMidB(xS, 1, nL) & Chr(10) & SPL(xMidB(xS, nL + 1, 9999), xL) '»¼¦^³B²z
End Function
Function xMidB(ByVal str As String, start, length) As String
xMidB = StrConv(MidB(StrConv(str, vbFromUnicode), start, length), vbUnicode)
End Function
Function xLenB(ByVal str As String)
xLenB = LenB(StrConv(str, vbFromUnicode))
End Function
¤T¡B±Ä¥Î¦Ûq¨ç¼Æ¤Î¦Û°Ê´«¦C¤è¦¡
=SPL(SUBSTITUTE($A$2,CHAR(13)&CHAR(10),","),20) |
|
{...} ªí¥Ü»Ýn¥Î CTRL+SHIFT+ENTER ¤TÁä¿é¤J¤½¦¡
|
|
|
|
|