VBA如何自定义序列,学会这些方法,让你工作更轻松
No.1
在Excel中,自定义序列是一种快速填表机制,如何有效地利用这个方法,可以大大增加工作效率。
通常在操作工作表的时候,可能会输入一些很有序的序列,如果一一录入就显得十分笨拙。
Excel给出了一种很好的解决办法,可实现快速录入。
自定义序列中,有些是Excel系统自带的如下图所示:
有日期、星期、月份、时辰等等,通常普遍用到的一些序列。
实际上,这序列完全可以自己定义,如果是一个行业或类别中经常用到的序列,那么就可以进行自定义,保存为序列,以后使用的时候,直接输入第一个序列值,用鼠标下拉就自动填充到表格中其它序列值。
如果使用序列,可以在网上查找,应用也很简单,本节主要介绍,和序列相关的一些VBA属性或方法,然后进行新建序列,删除序列和提取所有序列的方法。
如下图所示,是和序列相关的5个方法或属性。
上述方法应用于Application对象之下。
基于Application可以对序列进行一系列操作,也是最大限度自由设置序列的一些功能。
下图为本节示例,后面有VBA源代码,可实现提取本机中的所有序列。
No.2
我们所认识的序列是任何可以用来进行数据输入的一些字符或数字,只要你认为是一种序列就可以定义。
可以实现表格现有内容定义,无论是横向或者是竖向表格,都可以进行。
下面列出一些简单的代码,看一下是如何实现这些功能。
- 返回字符串数组的自定义序列号
Application.GetCustomListNum (ListArray)
- 返回一个自定义序列(一个字符串数组)
Application.GetCustomListContents (ListNum)
- 添加自定义列表
Application.AddCustomList(ListArray 、ByRow)
- 删除一个自定义序列
Application.DeleteCustomList(ListNum)
- 返回已定义的自定义序列的数目(包括内置序列)
Application.CustomListCount
代码
Private Sub CommandButton1_Click()
Dim sArr, di As Integer
sArr = Array("A", "B", "C", "D", "E") '定义自定义列表
di = Application.GetCustomListNum(sArr) '取出自定义列表序列号
If di <> 0 Then
Application.DeleteCustomList di '删除自定义列表
MsgBox "自定义列表删除成功!", vbInformation, "提示"
Else
Application.AddCustomList sArr '添加自定义列表
MsgBox "自定义列表新建成功!", vbInformation, "提示"
End If
Dim xn As Integer, xi As Integer, xArr
Dim cell As Range
Set cell = Range("B2")
xn = Application.CustomListCount '取出自定义列表数量
For xi = 1 To xn
col = cell.Offset(0, 1).Column
xArr = Application.GetCustomListContents(xi) '返回自定义列数组
Set cell = ActiveSheet.Range(ActiveSheet.Cells(3, col), ActiveSheet.Cells(UBound(xArr) + 2, col))
cell = Application.WorksheetFunction.Transpose(xArr)
cell.Item(1).Offset(-1, 0).Value = xi
Next xi
End Sub
学会自定义列表,可以使常用的一些数据不更重复录入,可以在本单位、行业内实现快速制表功能。当然了,至于更加快捷地使用,配合VBA编码,会起到更加神奇的效果。
欢迎关注、收藏
---END---