字符串分割,转为数组

zjd5688 2005-08-04 11:37:18
例如:字符串 "A1:B2,AA4:AB5,AA7:AB8" 转化为 数组 s[0]="A1",s[1]="B1",s[2]="A2",s[3]="B2",s[4]="AA4",s[5]="AB4",s[6]="AA5",s[7]="AB5",s[8]="AA7",s[9]="AB7",s[10]="AA8",s[11]="AB8"
怎样用函数实现,谢谢
...全文
332 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjd5688 2005-08-04
  • 打赏
  • 举报
回复
先用Split分割为数组,然后再用Split继续分割,得到 (A8 B11)(A13 B39)(A15 B30),在得到最后数组
maweifeng 2005-08-04
  • 打赏
  • 举报
回复
VB有一个函数Split,
再贴一个:
'字符串解析程序,将字符串分解解析为数组

Public Function StringSplit(ByVal SplitString As String, Optional ByVal Delimiter As String = ",") As Double()
' splitta una stringa in tokens separati dal delimitatore specificato
' ?sensibile alla presenza di stringhe nella SpliString, per cui i delimitatori
' presenti dentro a "..." non vengono considerati validi

Dim SLen As Long, nTokens As Long
Dim MaskStr() As Byte
Dim i As Long, k As Long, j As Long, z As Long
Dim retval() As Double

SLen = Len(SplitString)
If SLen > 0 Then
ReDim MaskStr(1 To SLen)
' RICERCA DOPPI APICI
i = 0
k = 0
Do
i = InStr(i + 1, SplitString, Chr(34))
If k = 0 Then
k = i
Else
If i = 0 Then ' fino alla fine della stringa
z = SLen
Else
z = i
End If
For j = k To z
MaskStr(j) = 1
Next j
k = 0
End If
Loop Until i = 0

' splittaggio vero e proprio
ReDim retval(0 To SLen - 1) As Double ' dimesioni massime possibili
nTokens = 0
i = 0
k = 1
Do
i = InStr(i + 1, SplitString, Delimiter)
If i > 0 Then
If MaskStr(i) = 0 Then ' delimitatore valido
retval(nTokens) = CDbl(Trim(Mid$(SplitString, k, i - k)))
nTokens = nTokens + 1
k = i + 1
End If
Else
If k > 0 Then ' fino alla fine - ultimo token
retval(nTokens) = CDbl(Trim(Mid$(SplitString, k)))
nTokens = nTokens + 1
k = 0
End If
End If
Loop Until i = 0
ReDim Preserve retval(0 To nTokens - 1) As Double

StringSplit = retval
End If

End Function
zjd5688 2005-08-04
  • 打赏
  • 举报
回复
我不想用Excel对象,我想用函数实现,因为实际情况不允许,谢谢,有好办法吗?
crycoming 2005-08-04
  • 打赏
  • 举报
回复
还是直接用Excel的对象方便一点
莫情莫钱 2005-08-04
  • 打赏
  • 举报
回复
阁,楼上的都说了,用那个函数是不错,满好的,它按分割符来给你转换成数组

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧