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

 找回密码
 
查看: 10585|回复: 21

[VBA/VBS教程] 【VBA For ET 教材连载系列】七十四

[复制链接]

397

主题

72

听众

3057

积分

测试体验团员

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

该用户从未签到

金币
3
威望
5028
帖子
2011
精华
11

特殊贡献奖 最佳教程奖 活跃会员奖

发表于 2010-4-8 14:40 |显示全部楼层
分享到: 新浪微博 腾讯微博
Sheets对象应用案例详解 (一)  O& i5 D  b  w$ t% d# t

+ Y4 F( D" Y- Z7 c' R# I$ J8 B  本课时开始阐述Sheets对象的应用案例。
/ M- J0 g4 l% q7 Q% ]9 T, s. U  Sheets对象即表,在Excel中表分为工作表、图表、表、5.0对话框等四种类型,而在WPS中只有一种,那就是工作表Worksheet。工作表对象是大家在工作有直接打交道的数据存储仓库,掌握好表对象的各种属性、方法与事件可以让工作的效率大大提升。
" ~. A& O4 v3 q9 ~$ s$ ~8 [本课时演示创建工作表及删除工作表% \! S2 ^7 p4 X
一:创建工作表
" O' }. N  y3 Y2 K
案例要求:
- ^9 E4 t' J3 e; c' z
  创建一个名为“总表”的工作表
" F1 Y0 O* M7 o2 T4 s8 M7 L, H知识要点: AddName7 G3 D0 c7 G' x
实现步骤:& T- H' y6 D6 A  Z
  1).单击菜单【插入】\【模块】;3 T" [, i8 m* ^; [
  2).在模块代码窗口输入以下代码:4 f! x  O/ ~4 K
______________________________________________________
/ j* x4 x: h0 @0 N( w( j% H6 W" x* s8 g" `. X2 t( I8 `
Sub 创建总表()

$ L5 N5 Y, a9 u6 \3 W& A9 \Dim SheName As String'
声明一个变量,用于存储表名7 @9 @, s2 K  F+ `" w. L* r, p+ H
On Error Resume Next'防错5 t2 y, `  F+ K" M7 U
shtname = Sheets("总表").Name'将“总表”表名赋予变量
0 V( w& J: _5 `3 x# B) `( iIf Err = 0 Then'如果没有错误(表示已经存在“总表”)/ X: D3 }+ O( {& }9 N
MsgBox "已经存在“总表”", 64, "提示"'提示用户# a) o0 O1 |, d" e' n; p
Else'否则
. q! ^( G0 ?0 K9 F  n) i6 g5 C# b/ \: ?
Sheets.Add after:=Sheets(Sheets.Count), Count:=1, Type:=Worksheet'
创建一个新表,且存放在最末尾; C- f- Y8 v# `/ F
Sheets(Sheets.Count).Name = "总表"'将新表命名为“总表”# l' v9 T# G+ }( _: h  c2 q
End If
" H- V9 g; z; j" G/ ^" X5 f/ QEnd Sub
0 p$ c  K  B4 t8 o: a$ B5 @& M8 H______________________________________________________
6 n; {, a7 ^6 x1 i4 j& }8 F
/ a/ B1 O+ i* ~; {, g9 c6 \9 \/ g4 A4 c& I" d5 @
  3)光标置于任码中任意位置单击“F5”键执行过程,如果活动工作簿中没有“总表”,那么将创建一个“总表”,否则将弹出图74.1所示提示:
! m, Y+ }7 ]' H0 m) Z
! M! w) |% ?9 g: S3 P* v6 h" D! j( [: E  n  y, [2 \
74.1 已存在同名工作表时的提示
( l. f8 O- K. _4 ^  k* k* q. E语法补充:) C1 W% L) Z; h7 n
  1.Sheets.Add表示创建工作表,具体语法如下:8 V0 K  `$ E) q% K8 B
expression.Add(Before, After, Count, Type)
1 N% l% m5 e9 W' d3 X  表74-1 Sheets.Add的参数列表
- [, D6 ~4 c' i
( k1 ^. n) I' H( W, w3 G) @5 Q
Before

* D8 [. y& _, Z7 r# P0 k7 p( X
指定工作表对象,新建的工作表将置于此工作表之前。

- |$ G6 k6 K2 F  l& l5 ]
After

1 a" b9 C' |- A* z  S% ^
指定工作表对象,新建的工作表将置于此工作表之后。

3 u6 w+ Q' f) P8 l, h' E
Count
& B$ X0 g! ?" W5 t$ x
要新建的工作表的数目。默认值为1
* i0 |: ]; f! @# C3 r
Type
0 \1 Y+ W+ M. h
指定工作表类型。在WPS中只能是工作表对象Worksheet
; X2 L* N/ M% v( Q0 h2 j
  2.Sheet.Name可返回或设置对象的名称。String 类型,可读写。也可以就是通过它可以获取工作表的名称,也可以修改工作表的名称。$ {3 L9 s# k' F: `( {' Y
二:工作表创建改名
# ^  C, v2 K: X( Q! R1 I
案例要求:! Q& j& ^  [3 D4 u6 g! L8 v
在工作表标签处双击,可以进入工作表命名状态。本例演示对工作表的批量命名- n! [; p, _0 B8 u& ]0 ]+ z' k/ S" s
  知识要点:Name# c! @) m1 M# ^" B+ Y9 r* D
实现步骤:/ @( w8 \$ Y+ Q
  1).单击菜单【插入】\【模块】;
/ b2 l0 L) [; `  Z" _  2).在模块代码窗口输入以下代码:
) m4 G+ K$ ~0 l______________________________________________________
% e7 I; r( e4 X: m- {& {Sub 批量命名()2 y' M1 H! w9 O4 h4 o0 z1 r8 O
Dim Sht As Worksheet, i As Integer'声明一个对象变量和一个Integer变量
% b+ X$ n: [: S2 D/ cFor Each Sht In Sheets'遍历活动工作簿所有工作表
0 B8 x/ p5 f6 D. li = i + 1'累加变量,该变量等于工作表数量: R5 E, S& |: C* m. k7 I: L2 S7 R
Sht.Name = Cells(i, 1)'i1列的值赋予工作表名称
  V; ^7 W, w" ?7 C  r/ {Next Sht0 P: P) z! r% Y$ f1 j
End Sub $ x; D! W9 n% b+ A* k
______________________________________________________4 w/ [% Z3 Z! Y9 l. f) f
9 Q5 H# b4 \9 t( p, B! A  F
9 L5 c6 v/ W9 ^/ G% S3 _
  3) 光标置于任码中任意位置单击“F5”键执行过程,那么图74.2中的7个工作表将会批量命名,其名称来自A1:A7
# `! u) @. ^, f* ^9 }% C, U  % D" B; {! S2 s1 M  w6 o

, l( J& B. {+ [8 b9 O4 o; z  图74.2 待命名工作表
1 r1 M: q# V% K  S* k5 D9 j( u( B
* o' g( J* Z, T' c9 S6 D  
/ @, V( q6 m/ r# O0 s' r
7 f. u. ]- g  ^  图74.3 批量命名结果0 h' n& Q. E9 n* t$ ^; B+ _) h
  关于工作表命名,ExcelET的处理方式是不同的。当工作簿中存在其它工作表的表名与当前命名的名称相同时,ExcelVBA代码将出错,弹出一个错误提示框,同时Err.Number属性值不等0;而在ET中虽然弹出一个错误提示框,但程序不会出错,Err.Number的值仍然为0.- p, c7 [  A8 q& Y5 s6 z2 v6 I
  以上差异对于新手来说,ET的处理方式似乎更好,存在同名时提示用户即可,代码本身不会因错误而中止。然而对于VBA老用户来说,ET的处理方式反而带来了不便,不利于程序的完善。例如命名时有若干个表命名不成功,ExeclVBA代码会出错,那么利用错误信息可以获取命名不成功的次数,以及可以罗列出哪些工作表命名不成功,这可以使程序更完善。而ET中屏弊了错误,以上信息完全无法获取。* O9 ~, [5 k9 M
语法补充:
( K7 ^) k; F) h( S  ]; ^
  本例中“Sht.Name = Cells(i, 1)”语句表示将单元格中的字符串赋予表名,也可以在命名时保留原有的表名,将新名称插入到原表名之前或者之后。以下代码可以将新名称插入到原表名之后:
$ \7 P% _* U2 w$ C) t5 y; x) USht.Name = Sht.Name & Cells(i, 1)
3 J6 I& G( X  D; r/ a
, h3 {: l2 l% N! D6 \+ K% W9 ~; X, X3 j
% u" E" E# I$ S& u
[ 本帖最后由 罗刚君 于 2010-4-8 16:58 编辑 ]

本帖子中包含更多资源

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

5

主题

0

听众

1842

积分

LV.8

Rank: 8Rank: 8

签到天数: 41 天

[LV.5]常住居民I

金币
347
威望
4997
帖子
488
精华
0
发表于 2010-4-8 16:01 |显示全部楼层
学习,谢罗版!
实习生实习......
回复

使用道具 举报

110

主题

18

听众

2万

积分

LV.17

Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17

签到天数: 1186 天

[LV.10]以坛为家III

金币
2075
威望
66962
帖子
4077
精华
0

优秀会员奖 活跃会员奖

发表于 2015-1-4 13:38 |显示全部楼层
学习一下      
回复

使用道具 举报

5

主题

1

听众

54

积分

LV.2

Rank: 2

签到天数: 1 天

[LV.1]初来乍到

金币
8
威望
147
帖子
18
精华
0
发表于 2015-1-4 15:47 |显示全部楼层

' R9 o6 D8 \' `5 p6 B7 c签与不签,我还是会签到
回复

使用道具 举报

110

主题

18

听众

2万

积分

LV.17

Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17

签到天数: 1186 天

[LV.10]以坛为家III

金币
2075
威望
66962
帖子
4077
精华
0

优秀会员奖 活跃会员奖

发表于 2015-4-19 11:35 |显示全部楼层
jsdbplt 发表于 2015-1-4 13:38 ) K) a/ C" k5 E
学习一下
& f8 E8 u" n5 G/ c
了解一下            
回复

使用道具 举报

0

主题

1

听众

12

积分

LV.1

Rank: 1

签到天数: 1 天

[LV.1]初来乍到

金币
1
威望
23
帖子
9
精华
0
发表于 2015-4-20 18:26 |显示全部楼层

% k  z5 Q2 H9 n' l% C4 Z来学习教程!支持!
回复

使用道具 举报

0

主题

0

听众

23

积分

LV.1

Rank: 1

签到天数: 1 天

[LV.1]初来乍到

金币
0
威望
55
帖子
1
精华
0
发表于 2015-4-21 22:07 |显示全部楼层
好啊或者之后。以下代码可以将新名称插入到原表名之后:
回复

使用道具 举报

110

主题

18

听众

2万

积分

LV.17

Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17

签到天数: 1186 天

[LV.10]以坛为家III

金币
2075
威望
66962
帖子
4077
精华
0

优秀会员奖 活跃会员奖

发表于 2015-8-9 12:43 |显示全部楼层
jsdbplt 发表于 2015-4-19 11:35
( n: K: v! x( N) X2 ^8 q* H了解一下

3 {+ S) s  o, S" p9 F参考一下            
回复

使用道具 举报

无效楼层,该帖已经被删除

110

主题

18

听众

2万

积分

LV.17

Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17

签到天数: 1186 天

[LV.10]以坛为家III

金币
2075
威望
66962
帖子
4077
精华
0

优秀会员奖 活跃会员奖

发表于 2015-12-6 09:33 |显示全部楼层
再看一下               
回复

使用道具 举报

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

快速回帖:

fastpost

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

GMT+8, 2017-11-25 09:49

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部