急求一个简单小函数,在线等待。

acemeicn 2003-09-29 11:35:21
本人对VB不熟悉,求教一个小问题。
由于split函数无法在EXCEL97中使用,求一个类似split的函数。

输入两个参数
1,一个字符串
2,一个判断符号(比如”,”” ;”之类的分隔符),

返回一个字符串数组存放分割好的字符串。
希望用最基本的函数编写。(我也不懂哪些是基本函数只求能在EXCEL97下运行)

Public Function Split(ByVal compression As String, ByVal compare As String) As String()
//

End Function
...全文
43 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
脆皮大雪糕 2003-09-29
  • 打赏
  • 举报
回复
哦,了解!
一边吃饭一边完成以下代码,用到left right instr redim preserve 不知道这些在你的版本里面能不能用

Option Explicit

Private Sub Command1_Click()
Dim a As String
Dim b() As String
a = "1,2,3,4,5"
mySplit a, ",", b
Dim i As Integer
For i = 0 To 4
Debug.Print b(i)
Next
End Sub

Private Sub mySplit(ByVal strInput As String, ByVal strCompare As String, aryOut() As String)

Dim intCount As Integer
Dim intPoint As Integer
ReDim aryOut(0)
intCount = 1
intPoint = 1
intPoint = InStr(1, strInput, strCompare)
If intPoint = 0 Then
aryOut(0) = strInput
Exit Sub
Else
aryOut(0) = Left(strInput, intPoint - 1)
strInput = Right(strInput, Len(strInput) - intPoint)
End If
Do
DoEvents
intPoint = InStr(1, strInput, strCompare)
ReDim Preserve aryOut(UBound(aryOut) + 1)
intCount = intCount + 1
If intPoint = 0 Then
aryOut(intCount - 1) = strInput
Exit Do
End If
aryOut(intCount - 1) = Left(strInput, intPoint - 1)
strInput = Right(strInput, Len(strInput) - intPoint)
Loop

End Sub

acemeicn 2003-09-29
  • 打赏
  • 举报
回复
to chewinggum(口香糖·向星星前进)
我不是要弄明白怎么用,是要手工编一个类似的函数,因为split在低版本中无法运行
脆皮大雪糕 2003-09-29
  • 打赏
  • 举报
回复
Split函数


描述

返回一个下标从零开始的一维数组,它包含指定数目的子字符串。

语法

Split(expression[, delimiter[, count[, compare]]])

Split函数语法有如下几部分:

部分 描述
expression 必需的。包含子字符串和分隔符的字符串表达式 。如果expression是一个长度为零的字符串(""),Split则返回一个空数组,即没有元素和数据的数组。
delimiter 可选的。用于标识子字符串边界的字符串字符。如果忽略,则使用空格字符(" ")作为分隔符。如果delimiter是一个长度为零的字符串,则返回的数组仅包含一个元素,即完整的 expression字符串。
count 可选的。要返回的子字符串数,–1表示返回所有的子字符串。
compare 可选的。数字值,表示判别子字符串时使用的比较方式。关于其值,请参阅“设置值”部分。


设置值

compare参数的设置值如下:

常数 值 描述
vbUseCompareOption –1 用Option Compare语句中的设置值执行比较。
vbBinaryCompare 0 执行二进制比较。
vbTextCompare 1 执行文字比较。
vbDatabaseCompare 2 仅用于Microsoft Access。基于您的数据库的信息执行比较。

脆皮大雪糕 2003-09-29
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
Dim a As String
Dim b() As String

a = "1,2,3,4,5"
b = Split(a, ",")

End Sub

7,759

社区成员

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

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