我的目标:让中国的大学生走出校门的那一刻就已经具备这些Office技能,让职场人士能高效使用Office为其服务。支持鹏哥,也为自己加油!

在工作表中,我们可以使用 “&” 来合并字符串,或者使用函数CONCATENATE来合并,在VBA中怎么合并呢?

通过下面的案例,我们来学习下在VBA中怎么进行合并字符串。

案例:

联表查询用索引 联表查询不使用join_VBA

如上图,A到D列是数据区域,要在这些数据区域通过输入关键字就能提取相关的信息放置到F到 I 列中。

思路如下:

先把数据区域每行数据合并在一起,当我们输入查询关键字后,就拿合并在一起的每行数据与输入的关键字比较,如果数据中包含关键字,则把该行数据放置到一个新的数组,得出新数组后通过转置后输出到F到 I 列。

如何才能把每行数据合并在一起呢?这里就要用到VBA中的join函数。

基本用法:

join(待合并的数据,"分隔符号"),第二个参数不写默认以空格分开。

联表查询用索引 联表查询不使用join_数据_02

这里要注意的是:join只能合并一维数组。

文章开始提到的查询案例代码如下:

Sub 查找()Dim hs%, i%, arr, a, sr$, arr1(), n%sr = InputBox("请输入要查找的内容")hs = Range("a1").CurrentRegion.Rows.CountFor i = 1 To hs  arr = Cells(i, 1).Resize(1, 4)  a = join(Application.Transpose(Application.Transpose(arr)))  If a Like "*" & sr & "*" Then    n = n + 1    ReDim Preserve arr1(1 To n)    arr1(n) = arr  End IfNext[f3].Resize(n, 4) = Application.Transpose(Application.Transpose(arr1))End Sub

向右滑动可以查看完整代码。

arr为每行的数据,为一个一行四列的数组(二维数组),想要用join合并,必须将arr通过transpose函数转置两次以后变为一维数组后才能合并。

知识点:

1、一维数组与二维数组的相互转化。

2、运算符like的用法。

3、InputBox函数的用法。