使用VBA统计Excel中字符个数
张焱;张金宝
【摘 要】Through menu operation, counting text words in Excel is very difficult, and statistics the total number of characters by using Excel VBA can be convenient in a single Excel file and multiple Excel files. All the required operation is gathering Excel files%通过菜单操作,统计Excel文中字数非常麻烦,而借助ExcelVBA可方便快捷的统计单个Excel文件的字符个数、多个Excel文件的字符个数。将所有需统计的Excel文件放到一个文件夹下,使用文中提供的程序即可完成字数统计,并能将含有文件名及对应字符个数的统计结果存放到Excel文件中。
【期刊名称】《电脑与信息技术》
【年(卷),期】2011(019)004
【总页数】4页(P72-75)
【关键词】Excel;Excel,VBA;统计字符个数
【作 者】张焱;张金宝
【作者单位】交通运输部管理干部学院,河北廊坊065201;交通运输部管理干部学院,河北廊坊065201
【正文语种】中 文
【中图分类】TP311
在日常工作中,大家经常需要统计Excel文档的字数。如果是Word类型的文档,借助于Word自身提供的字数统计功能,很容易就可获得文档的总字数。然而,如果是Excel格式的文档材料,由于Excel没有像Word那样提供统计文档字数的简单菜单操作,在Excel统计文字个数成为一个较为繁琐的问题。为方便大家统计Excel文档字数,笔者通过数组公式、VBA(Visual Basic For Application)两种方式统计Excel文中字数。
1 使用数组公式统计Excel字符的个数
Excel中公式功能很强大,理论上,可通过公式完成任何运算操作,例如求和运算、均值运
算、逻辑运算等。Excel提供了种类和数量众多的函数(这些函数其实是Excel预定义的公式),通过组合这些函数,可完成较为复杂的公式运算。如果Excel提供的函数无法完成所需的运算,那么还可通过自定义公式来完成。Excel没有直接提供统计Excel字符总数的函数,需要组合Excel中的一些函数来完成字数统计,并且统计Excel字符总数往往涉及到多个单元格,需结合使用Excel中的数组公式才可完成字数统计。
vba计算字符串长度
1.1 什么是数组公式
普通公式只占用一个单元格,并且只返回一个结果,而数组公式是一个以数组为参数的公式,可占用一个单元格,也可占用多个单元格;可对一组数或多组数进行多重计算,输出一个或多个结果。在单元格中,按照普通公式的输入方法输入公式,输入完成后,同时按住Ctrl、Shift和Enter键,既可将普通公式转换成数组公式。例如在单元格输入=B2:B8*C2:C8,然后同时按下Ctrl、Shift和Enter键,既可生成一数组公式。此数组公式将B2:B8中的每一单元格的值与C2:C8中行号相等的单元格的值相乘。
1.2 使用数组公式统计字数
首先通过LEN函数统计单个单元格中的字符个数,其次使用SUM函数对每个单元格中的字符个数求和,即可得到Excel一个工作表中字符总个数。如果Excel工作簿含有多个工作表,且每个工作表中都有字符,那么可按照上述方法求出各个工作表的字符个数,然后相加,即可得到Excel工作簿的字符个数总和。如图1所示,Excel工作表中含有5行4列数据,在单元格 A6 处输入“=SUM(LEN(A1:C5))”,然后同时按下 Ctrl、Shift和Enter键将此公式转换成数组公式,单元格A6将显示此Excel工作表包含的字符个数。
图1 Excel工作表示意图
2 使用VBA统计单个Excel文件中的字符总数
使用数组公式统计Excel文件字符个数,需首先打开Excel文件,其次在单元格输入数组公式。如果统计多个Excel文件的字符个数,需不断的打开文档和输入公式,操作异常繁琐,而使用Excel VBA统计Excel文件字符个数,可将这些繁琐的操作交给程序去做,我们需要做的只是选择需要统计的文件,然后,确定保存统计结果的Excel文档的存储位置,大大简化了我们的操作步骤。在Excel 2007使用VBA统计字符可按如下步骤进行:
2.1 设置Excel VBA运行的环境
为了增强软件的安全性,避免宏病毒非法侵入系统、篡改及删除文件等恶意操作,Excel软件默认禁止所有宏运行。为使Excel VBA能够运行,必须启用宏。启用宏可按照如下方法进行:单击Excel文件上方的“Office按钮”→单击“Excel选项”→在“常用”选项卡中,选中“在功能区显示开发工具选项卡”,单击“确定”→单击“开发工具”选项卡,单击“宏安全性”菜单,在弹出的对话框中选择第二项“禁用宏,并发出通知”。以后打开含有VBA程序的Excel文档,软件就会提示是否开启宏,根据提示,开启宏操作。
2.2 编写VBA程序
编写统计VBA程序的大体步骤是首先插入一CommonDialog控件,该控件的作用是显示一个文件选择对话框,让用户选择需统计的Excel文件,然后将用户选择的文件名及路径存储到该控件的属性之中;其次,创建Excel.Application对象,打开用户刚才选中的Excel文件,遍历Excel文件中的每个工作表,获得每个工作表含有数据区域的最大行数和列数,并在最大行数的下一行的第一个单元格使用VBA语句写入数组公式,这是整个程序的最为关键的部分;最后,将统计的结果写入新建的Excel工作簿中,并出现另存为对话框,让用户选择Excel文件的保存位置。具体步骤如下:
(1)插入能显示文件选择窗口的控件
打开Excel文件,在第一个工作表中,执行“开发工具→插入→Active控件→其他控件→Microsoft Common Dialog Control,version 6.0”命令插入CommonDialog控件。执行“开发工具→设计模式”命令,右击刚插入的CommonDialog控件,在出现的菜单中,选择“查看代码”进入VBA编辑器,在 Sub CommonDialog1_GotFocus()与end sub之间输入
并将过程CommonDialog1_GotFocu前面的Private设置成Public。
(2)编写VBA代码
执行“开发工具→Visual Basic编辑器”命令,单击“ThisWorkBook”,在右边的窗口中输入如下代码:
(3)添加命令按钮,设置动作
在第一个工作表中,插入“命令按钮(ActiveX控件)”,右击插入的命令按钮,在出现的属性对话框中,将“Caption”属性设置成“统计单个Excel文件字数”;右击此按钮,选择“查看代码”
命令进入VB编辑器,在过程CommandButton1_Click之内输入“untCharsInFile”。退出VB编辑环境,返回Excel,退出设计模式,单击此命令按钮可运行统计程序。
3 使用VBA统计文件夹中所有Excel文件的字符总数
使用上述方法统计单个Excel文件中的字符总数比较简单、方便,然而需统计的文件众多,并处在不同的文件夹下时,单个统计Excel文件的字符个数比较繁琐。如果文件总数达到几十或者几百个,通过手动逐个文件统计,费时费力,几乎是难以完成的工作。为了方便对多个Excel文件的字数统计,对上述程序进行了改进,实现了对文件夹中所有Excel文件的字符统计。
3.1 设置开发环境
使用上面提及的方法,开启宏操作,然后打开VB编辑环境,执行“工具→引用”,在弹出的对话框,选择“Microsoft Scripting Runtime”和“Microsoft Common Dialog Control 6.0”前面的复选框,添加对这两个组件的引用。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。