Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 9046|回复: 8

[已解决]求解:VBA中引用工作表名称遇到的烦事

[复制链接]
发表于 2013-4-4 23:29 | 显示全部楼层 |阅读模式
像下面的代码里引用到工作表名

Worksheets("汇总").Activate

现在的问题是这个工作表是可以改名的。一旦改名,代码就没用了。怎么让代码里的工作表名称随着工作表名改变而代码功能不受影响呢?

请教各位老师,谢谢了
最佳答案
2013-4-4 23:50
你在VBE中看嘛。列表中先是代码名,代码名后拓号内包含的就是工作表名。
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2013-4-4 23:42 | 显示全部楼层
本帖最后由 hwc2ycy 于 2013-4-4 23:44 编辑

用codename吧。一般都不会去改这个的。
回复

使用道具 举报

发表于 2013-4-4 23:43 | 显示全部楼层
Worksheet.CodeName 属性
返回对象的代码名。String 型,只读。
语法

表达式.CodeName

表达式   一个返回 Worksheet 对象的表达式。

说明


在“属性”窗口中“(名称)”右边的单元格中显示的值是所选对象的代码名。可以在设计过程中通过更改该值来改变对象的代码名。不能在运行过程中更改该属性。

对于一个返回指定对象的表达式,该表达式可使用对象的代码名。例如,如果第一张工作表的代码名为 Sheet1,则下列表达式是等价的。

Visual Basic for Applications
Worksheets(1).Range("a1")
Sheet1.Range("a1")

工作表的名称可以与其代码名不同。创建一张工作表时,其工作表名称和代码名是相同的,不过,更改工作表名称时并不影响其代码名,并且,更改工作表代码名(在 Visual Basic 编辑器中使用“属性”窗口)也不影响其名称。

回复

使用道具 举报

 楼主| 发表于 2013-4-4 23:47 | 显示全部楼层
hwc2ycy 发表于 2013-4-4 23:43
Worksheet.CodeName 属性
返回对象的代码名。String 型,只读。
语法

我不太懂,像我上面那个怎么样修改放到代码里功能不受影响呢?
能不能帮我直接修改写完整的代码呢?
回复

使用道具 举报

发表于 2013-4-4 23:47 | 显示全部楼层
QQ截图20130404234826.jpg
回复

使用道具 举报

发表于 2013-4-4 23:50 | 显示全部楼层    本楼为最佳答案   
你在VBE中看嘛。列表中先是代码名,代码名后拓号内包含的就是工作表名。
回复

使用道具 举报

 楼主| 发表于 2013-4-4 23:52 | 显示全部楼层
我这个叫汇总名的表是后来加上去的,肯定不是SHEET1,但我改成SHEET(1)并把它移到第一个工作表位子时,代码里指的就是这个工作表了,在代码工程管理里显示的是SHEET25
回复

使用道具 举报

 楼主| 发表于 2013-4-5 00:04 | 显示全部楼层
hwc2ycy 发表于 2013-4-4 23:47

明白这个简单问题了,我直接用管理器里代码名放到VBA里就行了,谢谢管理
回复

使用道具 举报

发表于 2013-4-5 00:11 | 显示全部楼层
学习学习再学习 发表于 2013-4-5 00:04
明白这个简单问题了,我直接用管理器里代码名放到VBA里就行了,谢谢管理

http://www.excelpx.com/thread-34170-1-1.html
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-27 10:03 , Processed in 0.454308 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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