模块化编程的意义在于可以批量生产,插拔式开发,往往可以事半功倍,这需要不断总结梳理模块库,细分场景,涵盖的面越广,越能够提高开发效率,且使代码的标准化程度更高,可移植性更强,从而使产品更健壮。
笔者总结的这一系列常见方法可以极大的丰富插件库,拓宽思路,只需体会并领会其中的要义,就可以很方便灵活的实现现实中的大部分场景,甚至做到很少的几行代码就可以实现很复杂的功能……
这里有些方法是具体的示例,需要在实际需要中活学活用,切忌生搬硬套。
01
清空工作表里的VBA代码
适用场景:在对工作簿或工作表进行操作权限控制的时候可用于解锁工作簿或工作表。
With ThisWorkbook.VBProject.VBComponents.Item("ThisWorkbook").CodeModule .DeleteLines 1, .CountOfLines End With
02
弹出提示窗体
适用场景:操作过程中为了降低误操作的可能以及提示性作用,可增加提示性窗体。
If MsgBox("确定要在当前的工作表生成单元格吗?" & Chr(10) & Chr(10) & "无关内容将被清空,请谨慎操作!", vbOKOnly, "提示") = vbOK T ' endif
03
设置行(列)宽
适用场景:在需要固定列宽或行宽时使用。
Columns("A:" & ConvertToLetter).Select Selection.ColumnWidth = Hwigth Rows("1:" & Lnumber).Select Selection.RowHeight = Lwigth
04
清除指定范围的颜色
适用场景:背景色初始化。
Range(Cells(3, 2), Cells(ActiveSheet.UsedRange.Rows.Count, Range("b1").End(xlToRight).Column)).Interior.Pattern = xlPatternNone
05
Listbox中的值是否被选中
适用场景:判断list项是否被选中以进行后续处理
For i = 0 To ListBox1.ListCount - 1 ListBox1.Selected(i) = True Next i
06
自右向左匹配字符串
适用场景:当需要匹配的内容大部分在目标字符串的右侧时,可以提高效率。
InStrRev(ws.Cells(k, 3).Value, Trim(newName)) > 0
07
从字符串中提取整数
适用场景:当需要在字符串中把整数值给提取出来的时候,可通过正则匹配。
Set regx = CreateObject("VBScript.RegExp") With regx .Global = True .Pattern = "\D" '数字 myNumber = .Replace(rg, "") End With
08
取奇(偶)数行的数值
适用场景:z在处理数据的时候,对于有一定规律的奇数偶数行数据,需要分别提取出来的时候
=INDEX($A$1:$A$12,2*ROW()-1) =INDEX($A$1:$A$12,2*ROW())
09
取满足某条件的最大(小)值
适用场景:多用于考勤的场景,比如从打卡记录里提取最早打卡时间或最晚打卡时间。
=MAX(IF(D2=$A$2:$A$27,$B$2:$B$27)) =MIN(IF(D2=$A$2:$A$27,$B$2:$B$27)) 按下CTRL+SHIFT+ENTER
10
判断文件是否存在
适用场景:在处理文本文件或者文本数据库文件的时候,基于容错的需要,应该先确认目标文件是否存在。
If Dir(myFile, 16) = Empty Then MsgBox ("文件不存在!") Exit Function End If
11
读取文件库内容
适用场景:需要将本地文件数据库内容读取到vba控件中。
Open "C:\Users\Public\test.txt" For Append As #1 Print #1, InkEdit1.Text Close #1
- 上一篇: VBA编程常见场景的七种常用方法
- 下一篇: VBA编程常见场景的十种常用方法
评论