ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: xindian

取消了“宏”就什么都完了!

[复制链接]

TA的精华主题

TA的得分主题

发表于 2006-10-11 21:39 | 显示全部楼层
QUOTE:
以下是引用zldccmx在2006-10-11 21:26:00的发言:

哈 封装成EXE文件,别人想不启用宏都不行。因为封装成EXE文件之后,自动启用宏,尽管你将EXCEL的安全级别设成高级

封装成EXE文件是不是很复杂?

TA的精华主题

TA的得分主题

发表于 2006-10-11 23:40 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

哈哈,"Auto_Activate"这个名称把大家都弄糊涂了哈,我倒是早就搞明白了,我就做好人来解释一下!

你们插入的名称都是“工作簿”中的名称

而这个"Auto_Activate"名称要求是属于“工作表”中的名称

要插入属于工作表的名称而不属于工作簿的名称我除了使用VBA代码来实现外,还没有找到别的方法。

 

假设:

1.宏表的名称叫“宏表1”,要运行宏表的单元格是“$A$1”

2.假设宏表属于第一个索引,即“SHEETS(1)”

Sub AddName()'在“工作表中”插入"Auto_Activate"名称 
    For I = 2 To Sheets.Count '第一个工作表是宏表,所以从第二个工作表起
        Sheets(I).Names.Add Name:="Auto_Activate", RefersToR1C1:="=宏表1!R1C1" '注意,该行代码最前面是“Sheets(I).Names”,而不是“ThisWorkbook.Names”,插入的就只是属于该“工作表中”的名称而不是“工作簿中”的名称 

        Sheets(I).Names("Auto_Activate").Visible = False '隐藏该名称,如果你不想隐藏该名称就不要使用此代码。
    Next I
End Sub

 

还可以使用以下代码将宏表的行列给“隐藏/显示”掉(请自行在代码前加上“SHEETS("……")”.来限定工作表)

Sub Macro1() '隐藏行列
    Columns("A:IV").EntireColumn.Hidden = True
    Rows("1:65536").EntireRow.Hidden = True
End Sub
Sub Macro2() '显示行列
    Columns("A:IV").EntireColumn.Hidden = False
    Rows("1:65536").EntireRow.Hidden = False
End Sub

 

与该主题相关的代码还有:

Sub showMacroSheet()
    Sheets("宏表1").Visible = True
End Sub
 
Sub veryhideMacroSheet()
    Sheets("宏表1").Visible = xlVeryHidden
End Sub
 
Sub showAllNames()
    Dim theName As Name
        For Each theName In Application.Names
        theName.Visible = True
    Next
End Sub
 
Sub hideName()
    Worksheets("Sheet1").Names("Auto_Activate").Visible = False
End Sub

(请根据你实际的情况对以上代码作简单的修改)

 

不过取消宏则关闭工作簿我也有解开的方法。除非你做成EXE或DLL。

 

我说得正确的话就多表扬我两句哈[em04][em04][em31][em31]

[此贴子已经被作者于2006-10-13 21:40:56编辑过]

TA的精华主题

TA的得分主题

发表于 2006-10-11 23:43 | 显示全部楼层
QUOTE:
以下是引用zldccmx在2006-10-11 21:26:00的发言:

哈 封装成EXE文件,别人想不启用宏都不行。因为封装成EXE文件之后,自动启用宏,尽管你将EXCEL的安全级别设成高级

偶像!大师!就知道你最善于干这种事儿!!

TA的精华主题

TA的得分主题

发表于 2006-10-12 11:16 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2006-10-12 13:38 | 显示全部楼层

Sub AddName()'在“工作表中”插入"Auto_Activate"名称 
    For I = 2 To Sheets.Count '第一个工作表是宏表,所以从第二个工作表起
        Sheets(I).Names.Add Name:="Auto_Activate", RefersToR1C1:="=宏表1!$A$1" '注意,该行代码最前面是“Sheets(I).Names”,而不是“ThisWorkbook.Names”,插入的就只是属于该“工作表中”的名称而不是“工作簿中”的名称 

 

运行不了呀。。。。。。

[em06][em06][em06]

TA的精华主题

TA的得分主题

发表于 2006-10-12 13:56 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2006-10-12 14:25 | 显示全部楼层

斑竹大人,能不能给讲解一下呀。。。。。。。。。。。。。。。谢谢了。

TA的精华主题

TA的得分主题

发表于 2006-10-12 14:45 | 显示全部楼层
[em04][em04][em04][em06][em06][em06]

TA的精华主题

TA的得分主题

发表于 2006-10-12 19:17 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2006-11-15 11:26 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-5-18 13:49 , Processed in 0.041199 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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