最新WPS办公软件学习教程_免费企业办公软件下载_金山WPS Office官网论坛

 找回密码
 
查看: 3899|回复: 71

[VBA/VBS教程] 天远ET工具箱新功能介绍及源代码解读1——颜色定位

[复制链接]

84

主题

59

听众

3088

积分

测试体验团员

系统分析师

Rank: 14Rank: 14Rank: 14Rank: 14

该用户从未签到

金币
984
威望
8204
帖子
842
精华
3

WPS粉丝团 技术分享团 解答支持团 测试体验团 重阳节勋章 技巧教程分享达人 最佳教程奖 优秀会员奖

发表于 2013-2-3 16:26 |显示全部楼层
分享到: 新浪微博 腾讯微博
本帖最后由 天远 于 2013-2-23 00:30 编辑 6 j: v* [+ ^7 \) p6 w' ~
, I6 h2 ^0 c! [+ h) G
从今天开始,我将对天远ET工具箱中的新功能进行分别介绍,并解读其实现的源代码,帮助大家更好地学习VBA.
' ~0 d3 Z5 f2 j0 Y* E2 C0 O5 l7 H: i$ D; J2 Z9 |
wps表格默认的定位功能不能解决定位颜色(这里的颜色指的是单元格的填充颜色)的问题,因此需要二次开发,本次,天远ET工具箱将在2.1.9beta版中推出颜色定位功能。
* t: B, ?" F5 C0 U! j) O  F) E0 i+ x
# a1 N5 F5 X; A" `1 }! s  ]如上图,这六个功能分别为:% W4 T- k) u% M1 A, R9 f
1.定位工作表有颜色单元格:将会把当前工作表中有颜色的单元格全部选中' w9 j+ }' v7 R9 ~4 S' B
2.定位工作表无颜色单元格:将会把当前工作表中无颜色的单元格全部选中
& x5 q* R" {5 ~% C3.定位选区有颜色单元格:将会把当前选择区域(支持多个区域)中有颜色的单元格全部选中3 ~/ G/ a& @6 ]. ]# ^- O$ u% [
4.定位选区无颜色单元格:将会把当前选择区域(支持多个区域)中无颜色的单元格全部选中
: h- Z0 [  o+ D! g7 ?5.定位工作表中和所选单远格有相同颜色的单元格(单色):将会把当前工作表中,和所选择区域第一个单元格具有相同颜色的单元格全部选中+ ?) ]+ ^: o5 V2 x& N  I' e9 w3 I
如图:选择区域的第一个单元格是蓝色,则执行此功能后,当前工作表中所有蓝色单元格全部会被选中
- l+ f: k6 i6 E' t" C
5 m+ }+ {  `2 p  a6.定位工作表中和所选单远格有相同颜色的单元格(多色):将会把当前工作表中,和所选择区域有相同颜色的单元格全部选中 2 S9 H3 }" @5 b* P8 F
如图:选择区域(支持多个区域)中的单元格有蓝色和黄色两种颜色,则执行此功能后,当前工作表中所有蓝色或黄色单元格全部会被选中$ o, \3 @1 L% K- t2 H8 H- Z8 S

" f! ^- l: l% ?. }+ `: X+ e1 x- s0 T" E: i6 U  P5 S( O
下面,以 定位选区有颜色单元格 这个功能为例,详细解读其源代码:
1 `% D% r, F8 Z) _01 '定位选区有颜色单元格. O$ _5 a3 X" B+ I9 S
02 Sub TYSelectSelectionColorRange()( p( _8 G) m% m( |
03 On Error GoTo myErr '防错处理
, q4 Z2 k7 n+ g( U% @04 Application.ScreenUpdating = False '关闭屏幕更新,加快速度1 s! G. b! t8 Q" i
05 If TypeName(Selection) <> "Range" Then GoTo myExit  ' 选择对象不是单元格则退出
" v) B+ X( W! [1 h2 c06 Dim rng, rngg, rnggEx As Range
1 A/ I5 M. x$ i4 R% p1 L8 ?% C6 @07 Set rnggEx = Application.Intersect(Application.ActiveSheet.UsedRange, Selection) '取得整个区域(选区和已用区域的交集)
! ^) B) c( S4 ]08 If 0 = rnggEx.Count Then GoTo myExit '如果作用区域为空,则退出6 G1 Y* J7 I, I& P  L8 t$ e
09 Dim toUnion As Boolean '表征是否已经有要选择的单元格
7 j, ?4 x2 t" Y3 ~( u" t; U10 toUnion = False '默认值为否1 W* W4 R2 F1 y8 C/ h9 Q
11 Dim ci As Integer '存储单元格的颜色代码0 i$ g- S( z% S4 g- Y0 _- \  M4 y% G
12 For Each rng In rnggEx '对操作区域的每一个单元格
3 ^2 g2 t  X* C- M4 j: T13    ci = rng.Interior.ColorIndex '取得单元格的颜色代码
& D2 T3 ]$ E) P# j' Y$ M14    If ci > 0 And ci < 57 Then '如果单元格有填充颜色(在ET中有56种颜色,颜色代码为1-56); D! y# U* _# U: Q
15        If True = toUnion Then '如果已经有要选择的单元格
3 x- }- ^: O3 |$ T7 C16            Set rngg = Union(rngg, rng) '则将新单元格和原来所有单元格合并" _+ j' m+ X9 Q" w" B. _, \% d
17        Else
; S; E2 Z. O5 j5 K, _6 J0 d18            Set rngg = rng  '否则的话,初始化rngg
+ c# D+ ^* s( x* s* I7 J19            toUnion = True
, L2 K7 H& j5 d" k' g. a  u8 L8 _! D20        End If& P6 H6 y- ]9 G' {2 m2 L4 e
21    End If, q, j6 |" Q  a" a: L0 |. P9 H& j# j
22 Next
$ }. z5 ?7 W/ R0 q23 rngg.Select '将所有找到的单元格设置为选中状态& x! e- _1 g( U/ `% M3 r
24 Application.ScreenUpdating = True '恢复屏幕更新2 R' l6 [+ l% H) u) Z+ a7 L, e+ e
25 myErr:
+ F2 r+ s, O% S% `1 b- M1 T+ L26 myExit:
4 i3 S& z1 @6 k27 End Sub
) Q6 o* q3 H  R4 w
0 ?, D; F6 c1 ~: u9 Z: ^  r

) ^9 S( {- N5 e这六个功能的所有源代码见附件(欢迎VBS爱好者把这些代码改写成VBS脚本,可以更加方便地脱离VBA环境使用)
5 C5 O0 \/ q9 v0 A3 R# r2 E/ Q) ?附件:1 Q0 ~& p7 f! [. O
天远颜色定位功能VBA版:
游客,如果您要查看本帖隐藏内容请回复

5 i6 H  T4 M& n2 b(使用本文档需要您的WPS拥有VBA环境,没有VBA环境的请到http://bbs.wps.cn/thread-22347925-1-1.html中下载安装。)6 m7 g% i" ^& V' s4 y
使用天远ET工具箱不需要VBA环境,天远ET工具箱即将加入颜色定位功能,敬请期待。% K# w1 s" B- G( Z0 S
% ^  {" Q/ {# g% T/ n* A  T# J

本帖子中包含更多资源

您需要 登录 才可以下载或查看,

已有 5 人评分威望 收起 理由
翘尾的k + 24 WPS有你更精彩!
zhouyiran1@126.com + 24 很给力!
wqs099207@163.com + 10 很给力!
松风水月 + 20 很给力!
木偶251900 + 20 很给力!

总评分: 威望 + 98   查看全部评分

热爱分享和学习。希望WPS论坛越办越好,WPS软件越做越好。也希望能在这里交到更多志同道合的朋友。我的邮箱:ypr@yprnet.com
我在WPS论坛上的教程帖子合集: http://blog.yprnet.com/wps

442

主题

45

听众

1万

积分

超级版主

我心飞翔

Rank: 22Rank: 22Rank: 22Rank: 22Rank: 22Rank: 22

签到天数: 174 天

[LV.7]常住居民III

金币
780
威望
29551
帖子
17324
精华
18

优秀模板奖 WPS粉丝团 最佳管理奖 勤奋版主奖 最佳教程奖 宣传大使奖 乐于助人奖 用户体验奖 活跃会员奖 技巧教程分享达人 超级版主勋章 优秀会员奖

发表于 2013-2-3 22:56 |显示全部楼层
很强大
回复

使用道具 举报

19

主题

108

听众

5338

积分

技术分享团长

Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

签到天数: 5 天

[LV.2]偶尔看看I

金币
5316
威望
11825
帖子
2334
精华
1

WPS粉丝团 荣誉版主奖 活跃会员奖 技术分享团 解答支持团 重阳节勋章

发表于 2013-2-4 20:42 |显示全部楼层
真心谢谢天远,不仅开发了《天远ET工具箱》,还专门开了帖子为大家讲解其中的代码。真是太感谢了!{:soso_e183:}
1 \$ i8 i# d$ ?) H+ B. ^( e  z* e- ?, [' B' g
以前几次在网上见到有朋友询问如何定位和选择不同颜色的问题,以后再看到就可以他们让他们安装天远工具箱和学习这个教程了。非常感谢天远!
回复

使用道具 举报

153

主题

109

听众

1万

积分

解答支持团长

老菜鸟

Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

签到天数: 240 天

[LV.8]以坛为家I

金币
1254
威望
25965
帖子
10314
精华
1

活跃会员奖 解答支持团 测试体验团 乐于助人奖 优秀会员奖

发表于 2013-3-25 21:08 |显示全部楼层
学习了,竟然错过了这么长时间。
回复

使用道具 举报

0

主题

0

听众

2

积分

LV.1

Rank: 1

该用户从未签到

金币
0
威望
0
帖子
0
精华
0
发表于 2013-4-27 09:42 |显示全部楼层
他汉口有和他那口
回复

使用道具 举报

0

主题

0

听众

10

积分

LV.1

Rank: 1

该用户从未签到

金币
0
威望
13
帖子
11
精华
0
发表于 2013-5-8 18:13 |显示全部楼层
学习一下啊
回复

使用道具 举报

1

主题

0

听众

6

积分

LV.1

Rank: 1

该用户从未签到

金币
6
威望
9
帖子
0
精华
0
发表于 2013-5-17 23:44 |显示全部楼层
好好学习
回复

使用道具 举报

3

主题

0

听众

97

积分

LV.2

Rank: 2

该用户从未签到

金币
0
威望
190
帖子
51
精华
0
发表于 2013-5-23 19:36 |显示全部楼层
能否将这些功能自己添加到类似Excel的加载宏中,谢谢
回复

使用道具 举报

84

主题

59

听众

3088

积分

测试体验团员

系统分析师

Rank: 14Rank: 14Rank: 14Rank: 14

该用户从未签到

金币
984
威望
8204
帖子
842
精华
3

WPS粉丝团 技术分享团 解答支持团 测试体验团 重阳节勋章 技巧教程分享达人 最佳教程奖 优秀会员奖

发表于 2013-5-24 08:34 |显示全部楼层
可以的,只要把.et格式的文件另存成加载宏文件,就成Excel的加载宏了,不过有可能要修改一下代码
热爱分享和学习。希望WPS论坛越办越好,WPS软件越做越好。也希望能在这里交到更多志同道合的朋友。我的邮箱:ypr@yprnet.com
我在WPS论坛上的教程帖子合集: http://blog.yprnet.com/wps
回复

使用道具 举报

26

主题

1

听众

250

积分

LV.4

Rank: 4

签到天数: 5 天

[LV.2]偶尔看看I

金币
22
威望
494
帖子
130
精华
0
发表于 2013-5-25 22:13 |显示全部楼层
很不错哦
回复

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 更多账号登录:

快速回帖:

fastpost

WPS论坛更新日志|WPS Office官方论坛     

GMT+8, 2017-12-15 14:10

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部