首页 最新文章网站编程正文

VBA编程常见场景的十一种常用方法

模块化编程的意义在于可以批量生产,插拔式开发,往往可以事半功倍,这需要不断总结梳理模块库,细分场景,涵盖的面越广,越能够提高开发效率,且使代码的标准化程度更高,可移植性更强,从而使产品更健壮。

笔者总结的这一系列常见方法可以极大的丰富插件库,拓宽思路,只需体会并领会其中的要义,就可以很方便灵活的实现现实中的大部分场景,甚至做到很少的几行代码就可以实现很复杂的功能……

这里有些方法是具体的示例,需要在实际需要中活学活用,切忌生搬硬套。

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

评论

觉得有用就打赏吧
关注本站公众号,享受更多服务!
联系方式
QQ:2727987445
地址:中国·辽宁
Email:2727987445#qq.com
Copyright2015-2024.Powered by ©️云水客 | 网站地图 | 辽ICP备14000512号-5