分享成果,随喜真能量。大家好,今日内容仍是和大家分享VBA编程中常用的简单“积木”过程代码,这些内容大多是取至我编写的“VBA代码解决方案”教程中内容。NO.176-NO.177容是:
NO. 178:利用Split函数将文本转换为数组
NO. 179:在VBA中如何使用动态数组去除重复值的方法
VBA过程代码178:利用Split函数将文本转换为数组
Sub mynz()
Dim Arr As Variant
Arr = Split(Sheets("60").Cells(1, 1), " ")
Sheets("60").Cells(3, 1).Resize(UBound(Arr) + 1, 1) = Application.Transpose(Arr)
End Sub
代码的解析说明:mynz过程使用Split 函数将工作表Sheets("60")中A1单元格的姓名分别写入到工作表Sheets("60")中的A列单元格。首先使用UBound函数取得返回数组的最大下标后调整单元格区域,因为数组下标的缺省下界默认为0,所以在使用Resize属性调整单元格区域时参数RowSize需要在返回数组的最大下标上加一。Resize用于调整指定区域的大小,返回代表调整后的区域。工作表Transpose函数将返回数组转置后写入到工作表调整后的单元格区域中。
VBA过程代码179:在VBA中使用动态数组去除重复值的方法
Sub mynz()
Dim Splarr() As String
Dim Arr() As String
Dim Temp() As String
Dim r As Integer
Dim i As Integer
On Error Resume Next
Splarr = Split(Sheets("61.62").Cells(1, 1), " ")
For i = 0 To UBound(Splarr)
Temp = Filter(Arr, Splarr(i))
If UBound(Temp) < 0 Then
r = r + 1
ReDim Preserve Arr(1 To r)
Arr(r) = Splarr(i)
End If
Next
Sheets("61.62").Range("a5").Resize(r, 1) = Application.Transpose(Arr)
End Sub
代码的解析说明:mynz过程将工作表中A1单元格的文本去除重复值后写入到工作表A列单元格。数组Splarr用来保存A1单元格的文本。Split 函数以A1单元格的文本创建一个下标从零开始的一维数组。代码使用For...Next语句遍历数组Splarr的所有元素。使用Filter函数创建一个数组Temp用来保存以当前Splarr数组的值在Arr数组中的搜索结果。代码根据返回的数组Temp的最大下标来判断当前Splarr数组的值是否重复。在使用使用Filter函数时如果没有相匹配的值,将返回一个空数组,最大下标小于0。工作表Transpose函数将去除重复值的的文本转置后写入到工作表单元格中。
VBA是实现自己小型办公自动化的有效手段,我根据自己20多年的VBA实际利用经验,现推出了四部VBA教程,这些是我多年编程经验的记录,也是我“积木编程”思想的体现。每一讲都是较大块的“积木”,可以独立的完成某些或者某类的过程,有需要的朋友可以联络(WeChat:NZ9668)分享。利用这些可以提高自己的编程效率。其一:“VBA代码解决方案”PDF教程,是VBA中各个知识点的讲解,覆盖了绝大多数的知识点,是初学及中级以下人员必备;其二“VBA数据库解决方案”PDF教程,数据库是数据处理的利器,对于中级人员应该掌握这个内容了。其三“VBA数组与字典解决方案”PDF教程,讲解VBA的精华----字典,是我们打开思路,提高代码水平的必备。其四“VBA代码解决方案”视频教程。目前正在录制,“每天20分钟,半年精进VBA”,越早参与,回馈越多。现在录制到第三册的101讲。