ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 8201|回复: 12

批量寻找单元格内是否包含英文字母,如果有则英文字母单独标色,这个可以实现吗?求解

[复制链接]

TA的精华主题

TA的得分主题

发表于 2012-12-10 16:12 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
在A列数据内,查找是否包含英文字母,如果包含英文字母则英文字母单独标色,我只知道可以用条件格式进行单元格单充或者单元格内的数据整个进行标色,但是不知道有没有办法只对英文字母进行标色,数字仍旧保持原色,VBA是否能解决这个问题,求教!!!

Book2.rar

5.6 KB, 下载次数: 29

TA的精华主题

TA的得分主题

发表于 2012-12-10 16:28 | 显示全部楼层
如果仅是楼主附件内的例子,应该是简单的。

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-12-10 16:34 | 显示全部楼层
wudixin96 发表于 2012-12-10 16:28
如果仅是楼主附件内的例子,应该是简单的。

求解!!!

TA的精华主题

TA的得分主题

发表于 2012-12-10 16:37 | 显示全部楼层
  1. For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
  2. With Cells(i, 1)
  3.   If Not IsNumeric(.Value) Then
  4.      .Characters(Len(.Value), 1).Font.ColorIndex = 3
  5.   End If
  6. End With
  7. Next
复制代码
只针对字母在最后,且字母为一个的。

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-12-10 16:39 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
wudixin96 发表于 2012-12-10 16:37
只针对字母在最后,且字母为一个的。

字母应该不止一个,但是肯定是在最后

TA的精华主题

TA的得分主题

发表于 2012-12-10 16:43 | 显示全部楼层
  1. Set regex = CreateObject("vbscript.regexp")
  2. regex.Pattern = "[a-zA-Z]+"
  3. regex.Global = True
  4. For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
  5. With Cells(i, 1)
  6.   If Not IsNumeric(.Value) Then
  7.     For Each m In regex.Execute(.Value)
  8.      .Characters(m.firstindex + 1, m.Length).Font.ColorIndex = 3
  9.     Next
  10.   End If
  11. End With
  12. Next
  13. Set regex = Nothing
复制代码
TM截图未命名.png

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-12-10 16:58 | 显示全部楼层
wudixin96 发表于 2012-12-10 16:43

第一次接触这个。。。不清楚如何使用这个代码呃。。。能解释下么。。麻烦了

TA的精华主题

TA的得分主题

发表于 2012-12-10 17:02 | 显示全部楼层
打开 工作簿后,按ALT+F11打开VBE编辑器,然后点“插入--模块“,然后打开模块,再点“插入--过程”,给过程取个名称,随便取,如“上色”,然后复制粘贴上面的代码到过程中,最后点 工具栏上一个绿色的小三角。就OK了。
注:这个代码只处理当前工作表的第一列,如果是其它列,需要自己修改。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2012-12-10 17:03 | 显示全部楼层
本帖最后由 hehex 于 2012-12-10 17:07 编辑

感谢wudixin96 老师的程序,我又向老师学了一招。
characters 属性的用法。

点评

你的思路很好啊,为何要删除。  发表于 2012-12-10 17:08

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-12-10 17:12 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
{:soso_e179:}多谢2位大神。。受教了
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-22 18:25 , Processed in 0.044065 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表