Excel精英培训网

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

[已解决]如何用代码修改模块名称?

[复制链接]
发表于 2013-3-19 00:33 | 显示全部楼层 |阅读模式
A文件有2个模块,分别是模块1。模块2; B 文件有3个模块,分别是模块1,模块2,模块3
1、B文件移除模块1(不导出,即是删除模块1,即B文件剩下模块2与模块3),A文件导出模块2在桌面上,另存为“模块1.bas"文件。
2、B文件导入桌面的“模块1.bas“文件。
第一问题:B文件导入桌面的“模块1.bas“文件,导入后为什么模块名不是“模块1”,而“模块21”????
第二问题:如果excel系统规定是一定是“模块21”,能否通过代码来更改为“模块1”。

以上的移除B文件模块1,导出A文件的模块2,改名为模块1,B文件导入模块,我都可以通过代码实现。
出现问题是导入后,模块名是“模块21”。而我需要的模块名是“模块1”





最佳答案
2013-3-19 07:41
本帖最后由 hwc2ycy 于 2013-3-19 07:42 编辑
  1. ThisWorkbook.VBProject.VBComponents("模块1").Name = "test"
复制代码
直接设置NAME属性就OK了。

代码只能运行一次,第2次就会报错了。
发表于 2013-3-19 02:11 | 显示全部楼层
第一问题:B文件导入桌面的“模块1.bas“文件,导入后为什么模块名不是“模块1”,而“模块21”????
答:因为 A文件导出的模块实际名称是 模块2,只是保存的文件名是模块1,导入B文件时,因为B文件已经有了模块2,所以导入新的模块2,自动命名为模块21。
    如果A文件导出的是模块1,不管保存的文件名是模块1,还是模块2,导入B文件时,如果B文件,没有模块1,就会自动命名为模块1
   总结,导入的文件根据实际的模块名称而定,如果当前文件没有导入模块的实际名称,就自动命名为实际的模块名,如果导入的模块名与当前文件的重复,就会自动命名 在原来的模块名后加1

第二问题:如果excel系统规定是一定是“模块21”,能否通过代码来更改为“模块1”。
没找到 代码修改 模块名称的方法
回复

使用道具 举报

发表于 2013-3-19 07:41 | 显示全部楼层    本楼为最佳答案   
本帖最后由 hwc2ycy 于 2013-3-19 07:42 编辑
  1. ThisWorkbook.VBProject.VBComponents("模块1").Name = "test"
复制代码
直接设置NAME属性就OK了。

代码只能运行一次,第2次就会报错了。
回复

使用道具 举报

发表于 2013-3-19 07:42 | 显示全部楼层
Name 属性

返回或设置一个 String,其内容为一个在代码中用来识别对象的名称。对 VBProject 对象及 VBComponent 对象,可读/写;对 Property 对象及Reference 对象,此属性为只读。

说明

下面这张表格描述 Name 属性设置在不同的对象中如何应用。

对象 使用 Name 属性设置值的结果
VBProject 返回或设置活动的工程的名称。
VBComponent 返回或设置部件名称。若试图将 Name 属性设置成一个已经被使用或无效的名称,将可生成一个错误。
Property 返回出现在Property Browser中的属性名。这个值用来索引 Properties 集合。此名称不能被设置。
Reference 返回代码中的引用的名称。此名称不能被设置。



一个新对象的默认名称是这个对象的类型再加上一个唯一的整型。譬如,第一个新窗体对象就是 Form1,一个新的窗体对象就是 Form1,而你在一个窗体中创建的第三个文本框控件就是 TextBox3。

一个对象的 Name 属性必须以一个英文字母开始且最多 40 个字符。它可以包含数字及下划线 (_) 字符但不可包含标点符号或空白字符。窗体及模块 不能与另一个公共对象如 Clipboard、Screen 或 App 具有相同名称。虽然 Name 属性可以是一个关键字、属性名或是另一对象的名称,但这会在代码中造成一些冲突。
回复

使用道具 举报

发表于 2013-3-19 08:00 | 显示全部楼层
不过,你用代码操作VBE的话,得先添加VBA工程的信任才行。
QQ截图20130319080037.jpg
回复

使用道具 举报

发表于 2013-3-19 08:10 | 显示全部楼层
学习了  谢谢
回复

使用道具 举报

发表于 2013-3-19 08:24 | 显示全部楼层
另外在写代码操作VBE时,如果想获得属性和方法列,参数列示的话,就把VBAE的引用勾上。
QQ截图20130319082311.jpg
回复

使用道具 举报

发表于 2013-3-19 09:02 | 显示全部楼层
谢谢hwc2ycy分享,我用的是2003,对应5楼的设置是这样的:
QQ截图20130319090118.jpg
回复

使用道具 举报

 楼主| 发表于 2013-3-19 23:27 | 显示全部楼层
谢谢老师们的指导,帅老师解答了我第一个问题的疑惑,hwc2ycy 老师解决了第二个问题,由于最佳答案只能给一个。所以向帅老师说声对不起了。很感谢你的解答。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-28 22:30 , Processed in 0.381724 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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