- 系统环境:Windows 10
- Excel:2016版本
这个系列集锦一些常用的功能模块,在一些项目中会穿插应用
功能模块中又包括很多子模块,本文涉及的是:VBA自带的常用函数
今天讲讲如何判断某个字符串是否含有特定字符,函数InStr
Part 1:应用场景
- 要求:统计某次比赛获奖人数
- 输入:有工作表获奖清单,其中A列为序号,B列为姓名,C列为获奖状况,如图1所示
- 逻辑过程:对工作表C列进行循环,如果单元格内容中含有“奖”字,则计数器+1
图1 示例表
Part 2:代码
Sub test()
Rem>>判断是否含有特定字符
Rem>>
Set shtAward = ThisWorkbook.Worksheets("获奖清单")
maxHang = shtAward.Cells(Rows.Count, "C").End(xlUp).Row
AwardCount = 0
For i = 2 To maxHang Step 1
strAward = shtAward.Cells(i, "C")
If InStr(strAward, "奖") <> 0 Then
AwardCount = AwardCount + 1
End If
Next i
MsgBox "获奖总人数为:" & AwardCount
End Sub
图2 代码截图
Part 3:部分代码解读
- maxHang = shtAward.Cells(Rows.Count, "C").End(xlUp).Row,获得C列单元格含有内容的单元格所处的最大行
- InStr(strAward, "奖") <> 0,判断变量strAward是否含有“奖”这个字符
Part 4:添加点击按钮
- VBA代码要运行,往往需要在后台VBE点击运行按钮(事件是通过发生特定事件来自行触发的)
- 一般用户是不懂这些代码类操作,所以希望能够在Excel表格中直接添加一个按钮,对所有用户友好
- 具体操作:菜单栏开发工具-插入-按钮(窗体控件),对该按钮指定宏即可与VBA具体Sub关联,详见图3所示
图3 操作过程动图
以上,为本次的介绍内容,下回见。
本文首发于微信公众号:Excel高效办公之VBA。排版和细节略作修改,发于头条