养生 装修 购物 美食 感冒 便秘 营销 加盟 小吃 火锅 管理 创业 搭配 减肥 培训 旅游

Excel筛选出相同字符>=4个的单元格

时间:2024-10-21 20:33:53

我们都知道Excel表格上面具有筛选功能,这个筛选功能应付日常使用足足有余,但要使用它筛选出含有相同字符的单元格却显得力不从心。思来想去,还是觉得使用VBA程序处理比较妥当,快捷。

Excel筛选出相同字符>=4个的单元格

工具/原料

计算机

Windows7

Excel2010

方法/步骤

1、在Excel工作表标签“Sheet1”上面单击右键,选择“查看代码”。

Excel筛选出相同字符>=4个的单元格

2、在VBA编辑器的菜单栏上面点击【插入】、【模块】。

Excel筛选出相同字符>=4个的单元格

3、在“模块”代码框里面输入以下VBA程序代码,然后按下【F5】键运行程序,或者在VB钽吟篑瑜A编辑器的功能区上面点击“运行”图标运行程序。Su芟鲠阻缒bMidString()Dimi1,i2,i3,i4OnErrorResumeNext'忽略运行过程中可能出现的错误Application.ScreenUpdating=False'关闭屏幕更新,提高运行速度Setmysheet1=ThisWorkbook.Worksheets("Sheet1")'定义工作表Sheet1mysheet1.Range("B2:B1000")=""'清空B2:B1000的单元格mysheet1.Range(Cells(1,200),Cells(100,200))=""'清空第200列的第1到100的单元格Fori1=2To1000'从第2行到1000行Ifmysheet1.Cells(i1,1)<>""Then'如果单元格不为空白,则i2=Len(mysheet1.Cells(i1,1))'获取单元格字符长度Fori3=1Toi2'逐一截取单元格里面的每一个字符mysheet1.Cells(i3,200)=Mid(mysheet1.Cells(i1,1),i3,1)i4=Application.WorksheetFunction.CountIf(mysheet1.Range(Cells(1,200),_Cells(100,200)),mysheet1.Cells(i3,200))'统计某一单元格区域里面出现的次数Ifi4>=4Then'如果出现的次数>=4,则mysheet1.Cells(i1,2)=mysheet1.Cells(i1,1)'把第一列单元格填入同一行上面的第二列ExitFor'退出For循环EndIfNextEndIfmysheet1.Range(Cells(1,200),Cells(100,200))=""NextApplication.ScreenUpdating=True'恢复屏幕更新EndSub

Excel筛选出相同字符>=4个的单元格

4、回到Excel表格界面,将会在B列看到筛选出来的满足条件的单元格。

Excel筛选出相同字符>=4个的单元格

5、VBA程序代码解读:(1)本程序里面借用了工作表Sheet1里面的第200列1卯掏跨几~100行作为中介(即:mysheet1.Range(Cells(1,200)荑樊综鲶,Cells(100,200))),该单元格区域不应存有数据,否则会造成数据丢失,要么就在程序中改成其他区域的单元格。(2)A列单元格的字符长度可能不尽相同,因此使用Len函数来获取单元格里面的字符长度,以便后续进一步循环截取、判断。(3)VBA程序不能直接使用Countif函数,此时需要引用到Excel工作表上面的函数功能(即:Application.WorksheetFunction.CountIf)。(4)在执行循环判断的过程中,如果满足条件,则退出循环(即:ExitFor),以提高程序的运行速度,减少等待时间。

© 一点知识