前面我们讲了循环、选择。今天我们来聊一下字符串,后面会给出一个实例来操作。在基本所有的计算机语言中都有字符和字符串的存在。毕竟我们总不能用1和0来写指令。

字符串
其实用过Excel的都知道,在单元格中的数据有数字、日期、文本、符号等等。完全看我们输入什么。而VBA中的字符串就是类似于表格单元格格式里面的文本格式一样。
双引号:
在很多的编程语言中字符串都是双引号进行括住,在这里也不例外如下:
Dim s
s="我是一个字符串!"
同时字符串是可以进行比较的,也就是说可以直接用字符串的形式比较判断是不是相同的内容。
那么有人就会说如果我输出字符串就有双引号怎么办,当然中文状态下的双引号和英文状态下的是不一样的,这一点倒是没有问题。字符串用半角的双引号作为起始和结束,那么我们怎么输出半角双引号呢?看下面例子:
s="输出双引号"""
结果这里写上两个双引号就能将双引号输出了。
换行:
在我们平时书写时候,会经常换行书写。那么代码中换行也和平时我们书写时一样敲Enter吗?肯定不是。和HTML编程一样,换行需要特殊的关键字(不同的操作系统关键字不一样,而且需要用连接符)。如下:
Mac Os:vbCr
Linux/Mac Os X:vbLf
Windows:vbCrLf/vbNewLine
结果空字符串:
简而言之就是什么内容都没有,用紧邻的双引号来表示。
s=""
当然输出效果肯定是什么都没有,那么这一点我们可以用来对单元格进行清空处理。
空白字符串:
在这里注意和前面的空字符串进行区别,这里的空白是在单元格中显示不出来但是计算机认为有字符存在,例如空格键等。就好比我们有时候在网站登录账号一样,有时候我们不小心在用户名前面加了一个空格就提示登录用户名不对一样。如:
s=" "
这其实是有字符的但是单元格中我们是看不到内容的。
划重点:做文本对比的时候需要格外注意空白字符串的存在。
需要注意除了关键字(Sub等),大小写不同被认为是不同的字符串。
s=123与s="123"是不同的,一个是数字可运算,一个是字符串不可运算。
连接字符串:
我们试想一下,这么一个场景:如果一个表格中我们想把1行A列的数据和1行B列的数据合并一下到C列。那么字符串如何迁移合并呢?这里就要用到“+”或者“&”(&注意前后要留有空格)。那么这两个有什么不一样呢?
“+”可以将两个字符串合并,但是如果是字符串和数字合并用加号会导致歧义,而且VBA在遇到数字字符串和数字用加号合并时会默认将数字字符串转换为数字,这就会导致合并出错。

实例1:
有两组数据,找出不同的数据并提取出来。
代码运行结果:

作业(有兴趣的可以尝试):
公司举行技能比赛,共有5个项目比拼。根据五个项目成绩综合排名(成绩相同则并列名次),将得到不同的现金奖金,第一名5000元,第二名4000元,第三名3000元,第四名:2000元,第五名1000元。第六名奖励500元。(要求编写代码自动生成每个人总成绩,并在排名一列生成名次,以及奖金数。知道怎么排序的也可以添加排序)
代码运行结果关注我,持续更新Excel编程!