• 系统环境: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:添加点击按钮

  1. VBA代码要运行,往往需要在后台VBE点击运行按钮(事件是通过发生特定事件来自行触发的)
  2. 一般用户是不懂这些代码类操作,所以希望能够在Excel表格中直接添加一个按钮,对所有用户友好
  3. 具体操作:菜单栏开发工具-插入-按钮(窗体控件),对该按钮指定宏即可与VBA具体Sub关联,详见图3所示

图3 操作过程动图



以上,为本次的介绍内容,下回见。

本文首发于微信公众号:Excel高效办公之VBA。排版和细节略作修改,发于头条