1. 首页 > 基础教育

深入解析:Split函数的核心知识与应用

大家好,我们今天开始第十四专题的讲解,这个专题是对Split函数的深入发掘,深入分析这个函数在提取数据信息时候的作用。在VBA版本6(Office 2000)中,Microsoft引入了Split函数,该函数将文本字符串拆分为一个数组。在学习了网抓知识后,相信大家对这个函数有着非常深刻的认识,在处理网页文档数据的时候,这个函数应用非常频繁,对于数据的截取,数据的获取是随处可见。在这个专题中,我们还将完善这个函数的一些功能。

第一节 Split函数的基本讲解

在数组的应用中,我们讲过,这个函数是十分重要的,它是指返回一个下标从零开始的一维数组,split函数包含指定数目的子字符串。我们这节就先回顾一下这个函数的基本用法。

1 什么是Split函数

Split 函数:返回包含指定数目的子字符串的从零开始的一维数组。

语法:Split(expression, [ delimiter, [ limit, [ compare ]]])

各个参数的意义:

Expression必需。包含子字符串和分隔符的字符串表达式。如果 expression 是零长度字符串 (""),则 Split 返回空数组,即不包括任何元素和数据的数组。

Delimiter可选。用于标识子字符串限制的 String 字符。如果省略,则假定空格符 (" ") 为分隔符。如果 delimiter 是零长度字符串,则返回包含完整 expression 字符串的只含单一元素的数组。

limit 可选的。要返回的子字符串数,–1表示返回所有的子字符串。

Compare可选的。数字值,表示判别子字符串时使用的比较方式。其值如下:

vbUseCompareOption –1 用Option Compare语句中的设置值执行比较。

vbBinaryCompare 0 执行二进制比较。

vbTextCompare 1 执行文字比较。

vbDatabaseCompare 2 仅用于Microsoft Access。基于您的数据库的信息执行比较。

2 Split应用的基本代码

在我的第一套教程《VBA代码解决方案》中,我讲解过这个函数是将文本转化为数组的函数,我们来看看这个函数的具体应用。

我给出一个字符串:

strFull = "VBA代码解决方案 - VBA数据库解决方案 - VBA数组与字典解决方案 - VBA代码解决方案(视频) - " & _

"VBA中类的解读及应用 - VBA信息的获取与处理"

在这个字符串中,我们看到每套教程中名称的前后均有空格,当按照"-"和" -"提取时返回的信息是不一样的,如下面的测试代码:

Sub mynz()

Sheets("SHEET1").Select

Cells.ClearContents

strFull = "VBA代码解决方案 - VBA数据库解决方案 - VBA数组与字典解决方案 - VBA代码解决方案(视频) - " & _

"VBA中类的解读及应用 - VBA信息的获取与处理"

'arrA将是从0到8的数组

'分隔符不包含空格,因此strFull中的空格将包含在返回的数组值中。

arrA = Split(strFull, "-")

sA = arrA(3) ' sA = " VBA代码解决方案(视频) ".

MsgBox "arrA的第四个字符是" &sA

'arrB将是从0到8的数组

'分隔符包含空格,空格不会包含在返回的数组值中。

arrB = Split(strFull, " - ")

sB = arrB(3) ' sB = "VBA代码解决方案(视频)".

MsgBox "arrB的第四个字符是" &sB

'下面的代码会将数组放回到工作表中

For i = LBound(arrA, 1) To UBound(arrA, 1)

Cells(i + 1, 1) = arrA(i)

Next

For i = LBound(arrB, 1) To UBound(arrB, 1)

Cells(i + 1, 2) = arrB(i)

Next

MsgBox "ok!"

代码截图:

代码解读:

1)strFull = "VBA代码解决方案 - VBA数据库解决方案 - VBA数组与字典解决方案 - VBA代码解决方案(视频) - " & _

"VBA中类的解读及应用 - VBA信息的获取与处理"

上述代码给字符串赋值。

2)arrA = Split(strFull, "-")

上述语句返回一个数组,这个数组是以"-"分隔strFull而成的,这里我们要注意由于测试字符串中是有空格的,所以返回的数组中各个元素中是含有空格的。

3)arrB = Split(strFull, " - ")

上述语句返回一个数组,这个数组是以"-"分隔strFull而成的,这里我们要注意由于测试字符串中是有空格的,以含有空格的分隔符分隔后,返回的数组中各个元素中是不含有空格的。

4) '下面的代码会将数组放回到工作表中

For i = LBound(arrA, 1) To UBound(arrA, 1)

Cells(i + 1, 1) = arrA(i)

Next

For i = LBound(arrB, 1) To UBound(arrB, 1)

Cells(i + 1, 2) = arrB(i)

Next

上述代码我们可以看到返回的数组元素。

3 Split的应用返回结果分析

我们点击运行按钮,在工作表中可以看到返回的数组各个元素:

我们从截图中看到,A列的数据中是含有空格的。

本节知识点回向:

① Split函数的意义是什么?

② Split函数的分隔符不同会决定返回值的不同,注意空格的影响。

本讲代码参考文件:014工作表.xlsm

积木编程的思路内涵:

在我的系列书籍中一直在强调"搭积木"的编程思路,这也是学习利用VBA的主要方法,特别是职场人员,更是要采用这种方案。其主要的内涵:

1 代码不要自己全部的录入。你要做的是把积木放在合适的位置然后去修正代码,一定要拷贝,从你的积木库中去拷贝,然后修正代码,把时间利用到高效的思考上。

2 建立自己的"积木库"。平时在学习过程中,把自己认为有用的代码放在一起,多积累,在用到的时候,可以随时拿来。你的积木库资料越多,你做程序的思路就会越广。

VBA的应用界定及学习教程:

VBA是利用Office实现个人小型办公自动化的有效手段(工具)。这是我对VBA的应用界定。在取代OFFICE新的办公软件没有到来之前,谁能在数据处理方面做到极致,谁就是王者。其中登峰至极的技能非VBA莫属!

我记得20年前自己初学VBA时,那时的资料甚少,只能看源码自己琢磨,真的很难。20年过去了,为了不让学习VBA的朋友重复我之前的经历,我根据自己多年VBA实际利用经验,推出了六部VBA专门教程:

第一套:VBA代码解决方案 是VBA中各个知识点的讲解,教程共147讲,覆盖绝大多数的VBA知识点,提供的程序文件更是一座不可多得的代码宝库,是初学及中级人员必备教程;目前这套教程提供的版本是修订第二版,程序文件通过32位和64位两种OFFICE系统测试。

第二套:VBA数据库解决方案 数据库是数据处理的专业利器,教程中详细介绍了利用ADO连接ACCDB和EXCEL的方法和实例操作,适合中级人员的学习。目前这套教程提供的是修订第一版教程,程序文件通过32位和64位两种OFFICE系统测试。

第三套:VBA数组与字典解决方案 数组和字典是VBA的精华,字典是VBA代码水平提高的有效手段,值得深入的学习,是初级及中级人员代码精进的手段。目前这套教程提供的版本是修订第一版,程序文件通过32位和64位两种OFFICE系统测试。

第四套:VBA代码解决方案之视频 是专门面向初学者的视频讲解,可以快速入门,更快的掌握这门技能。这套教程是第一套教程(修订一版)的视频讲解,听元音更易接受。这套教程还会额外提供通过32位和64位两种OFFICE系统测试的程序文件。

第五套:VBA中类的解读和利用 这是一部高级教程,讲解类的虚无与肉身的度化,类的利用虽然较少,但仔细的学习可以促进自己VBA理论的提高。这套教程的领会主要是读者的领悟了,领悟一种佛学的哲理。

第六套教程:《VBA信息获取与处理》,这是一部高级教程,涉及范围更广,实用性更强,面向中高级人员。教程共二十个专题,包括:跨应用程序信息获得、随机信息的利用、电子邮件的发送、VBA互联网数据抓取、VBA延时操作,剪切板应用、Split函数扩展、工作表信息与其他应用交互,FSO对象的利用、工作表及文件夹信息的获取、图形信息的获取以及定制工作表信息函数等等内容。

上述教程的学习顺序:1→3→2→6→5或者4→3→2→6→5。提供的程序文件更是一座巨大的代码库,供读者使用,如需要可以WeChat: NZ9668

学习VBA是个过程,也需要经历一种枯燥的感觉

"众鸟高飞尽,孤云独去闲。相看两不厌,只有敬亭山"。学习的过程也是修心的过程,修一个平静的心。在代码的世界中,心平静了,心情好了,身体自然而然就好。心静则正,内心里没有那么多邪知邪见,也就没有那么多妄想。利人就是利己。我的教程助力给正在努力的朋友。

"水善利万物而不争",绵绵密密,微则无声,巨则汹涌。学习亦如此,知道什么是自己所需要的,不要蜷缩在一小块自认为天堂的世界里,待到暮年时再去做自欺欺人的言论。要努力提高自己,用一颗充满生机的心灵,把握现在,这才是进取。越是有意义的事情,困难会越多。愿力决定始终,智慧决定成败。不管遇到什么,都是风景。看淡纷争,看轻得失。学习时微而无声,利用时则巨则汹涌。"路漫漫其修远兮,吾将上下而求索"

每一分收获都是成长的记录,怎无凭,正是这种执着,成就了朝霞的灿烂。最后将一阙词送给致力于VBA学习的朋友,让大家感受一下学习过程的枯燥与执着:

浮云掠过,暗语无声,

唯有清风,惊了梦中啼莺。

望星,疏移北斗,

奈将往事雁同行。

阡陌人,昏灯明暗,

忍顾长亭。

多少VBA人,

暗夜中,悄声寻梦,盼却天明。

怎无凭!

用户评论

巷陌繁花丶

学习编程真是太棒了!之前都不知道“Split”函数可以用在文字处理里。

    有14位网友表示赞同!

青楼买醉

这个基本讲解看起来很清晰易懂,我很容易理解 "split" 函数的作用。

    有11位网友表示赞同!

孤岛晴空

终于明白怎么使用 "split" 函数分隔字符串了!这太方便了!

    有8位网友表示赞同!

凝残月

感觉学习编程就像解谜一样,找到每个工具的正确用法,就能解决很多问题。

    有19位网友表示赞同!

日久见人心

我之前总是在文字分割上卡壳,现在终于有了解决方法。 感谢分享这个讲解!

    有16位网友表示赞同!

南宫沐风

这个讲解很实用,以后可以用来处理各种文本数据了。

    有9位网友表示赞同!

Hello爱情风

语言的学习很有趣,不断探索新的函数和技巧!

    有20位网友表示赞同!

有恃无恐

感觉 "split" 函数可以用在很多实际项目中,真想赶紧试试看。

    有8位网友表示赞同!

箜篌引

感谢老师分享这个基础知识,为我学习编程打下坚实的基础。

    有9位网友表示赞同!

哭着哭着就萌了°

学习编程需要不断的实践和积累,像这种基本讲解能帮助我们快速入门。

    有7位网友表示赞同!

陌潇潇

原来 "split" 函数这么强大!我之前根本没想到它可以这样做。

    有17位网友表示赞同!

花花世界总是那么虚伪﹌

这篇文章的讲解很详细,图片也很清晰,易于理解。

    有19位网友表示赞同!

南初

学习编程确实是一个循序渐进的过程,从基础知识到高级技能,每个阶段都很有挑战性。

    有19位网友表示赞同!

景忧丶枫涩帘淞幕雨

这个 "split" 函数讲解非常棒,让我对字符串处理有了更深入的了解。

    有11位网友表示赞同!

还未走i

"Split" 函数的功能很强大,应用场景也很多。以后会经常用到它!

    有16位网友表示赞同!

余笙南吟

学习新知识真是让人兴奋!期待在编程领域取得更大的进步!

    有16位网友表示赞同!

如你所愿

好的讲解能让我快速掌握关键知识点,非常感谢分享!

    有16位网友表示赞同!

墨染年华

这个 "split" 函数讲解的案例很实用,可以帮助我更好地理解它的用法。

    有14位网友表示赞同!

最迷人的危险

学习需要持续不断的探索和实践,这个基础知识讲解是一很好的起点。

    有6位网友表示赞同!

用户评论

此刻不是了i

终于找到一篇详细讲解Split函数的文章!之前一直使用这个函数还不太熟练,你的解释特别清晰,通俗易懂,受益匪浅啊! 现在我终于明白它的逻辑了!

    有11位网友表示赞同!

糖果控

这篇博客写的太好了!我对 Split 函数的理解更深了。特别是它在不同语言和场景中的应用部分,让我眼界开阔,原来还有这么多运用!

    有18位网友表示赞同!

命里缺他

这篇文章把Split函数的功能解释得很详细,包括原理、参数以及常用的应用场景。对于刚入门编程的人来说非常友好,而且图文并茂,更容易理解!学习了之后立马动手实践了一下,效果很明显~ 感觉这个函数真是很有用!

    有6位网友表示赞同!

你很爱吃凉皮

我觉得文章还是比较好的,我以前也经常用到Split函数,但看完这篇博客后对它的应用场景有了更深刻的理解。特别是关于边界处理和特殊字符的问题,让我受益匪浅!

    有14位网友表示赞同!

哽咽

这篇文章讲的太深入也太理论了,对于初学者来说可能难以理解。希望能有更多针对初学者的简单介绍,或者用一些实践案例来辅助说明。

    有11位网友表示赞同!

逃避

我觉得Split函数本身很实用,但是这篇博文里的例子都太简单了,缺乏实际案例的应用展示,这样感觉有点不够生动。希望作者能添加一些更具挑战性的应用场景,让读者更有学习的动力!

    有9位网友表示赞同!

看我发功喷飞你

文章结构清晰,知识点讲解到位,但是我认为缺少一些对不同编程语言中Split函数实现细节的比较分析。不同的语言有时会有微妙的区别,这部分内容我觉得可以补充一下!

    有5位网友表示赞同!

青衫故人

这篇博客写的真的很棒!对于初学者来说,把 Split 函数分成几个步骤来讲解非常清晰易懂。终于解决了我的一个问题:关于空格字符处理的问题!

    有17位网友表示赞同!

一笑抵千言

同意前面的评论,一些实际项目中的代码案例能更加提升文章的实用性! 我想看到更复杂的数据分离场景下的应用,毕竟这在实际开发中也是很常见的!

    有7位网友表示赞同!

莫飞霜

我一直喜欢用Python做数据处理。这篇博客讲解了 Split 函数的使用方法,让我对这个功能有了更深的理解!可以用来处理很多复杂的文本数据。

    有13位网友表示赞同!

见朕骑妓的时刻

我最近学习前端开发,发现Split函数经常被用在字符串分割操作中,这篇文章对我很有帮助!原来有很多不同的分隔符可以选择!

    有9位网友表示赞同!

半世晨晓。

感觉文章有点冗长…直接给出案例代码比较容易理解。例如如何使用 Split 函数处理 Excel 文件里的数据,或者其他实际项目中的应用场景。

    有9位网友表示赞同!

容纳我ii

总的来说,这篇文章讲解了Split函数的基础知识,适合刚入门编程的人阅读。但是对于熟悉该函数的人来说,文章内容可能显得稍微简单一些。

    有15位网友表示赞同!

軨倾词

Split函数是一个非常重要的工具,这篇博客让我对它的应用有了更清晰的认识。未来我会尝试在自己的项目中更多地运用它!

    有14位网友表示赞同!

若他只爱我。

虽然文章讲解得很细致,但是图文并茂度有点不够高. 如果能添加一些代码示例,以及不同语言实现版本的对比,会更加实用!

    有14位网友表示赞同!

眷恋

我希望以后文章能够涵盖其他与字符串处理相关的工具和方法,例如Join函数、正则表达式等。这方面的内容对我更有帮助!

    有16位网友表示赞同!

本文由发布,不代表千千择校网立场,转载联系作者并注明出处:https://www.qqzexiao.com/jcjy/5591.html

联系我们

在线咨询:点击这里给我发消息

微信号:weixin888

工作日:9:30-18:30,节假日休息