ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

VBA常用技巧代码解析

    [复制链接]

TA的精华主题

TA的得分主题

发表于 2009-5-20 18:03 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖已被收录到知识树中,索引项:开发帮助和教程
请问老大,你的VBA常用技巧代码解析大至上目录有多少页,我打算把前面的先打印出来,准备预留目录页出来,不知道留多少

TA的精华主题

TA的得分主题

发表于 2009-5-20 20:18 | 显示全部楼层

做个记号

谢谢版主,做个记号。

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-5-20 21:33 | 显示全部楼层
原帖由 yvhgydn 于 2009-5-20 18:03 发表
请问老大,你的VBA常用技巧代码解析大至上目录有多少页,我打算把前面的先打印出来,准备预留目录页出来,不知道留多少

说实话我也不知道会有多少页,后面的有些只写了个技巧名称,有些连技巧名称都没写上去,真的不清楚,如果要打印的话建议还是再等等。

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-5-20 21:39 | 显示全部楼层
原帖由 ykx042907 于 2009-5-20 16:36 发表
袁版主:您好!
   辛苦了!不好意思,请问一下:本人在运行技巧152时,出现下面附件图片中的错误提示。是怎么回事呀?谢谢!

附件的文件夹中有一个123.BMP文件,要和Excel文件放在同一文件夹中。

TA的精华主题

TA的得分主题

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

回复 1127楼 yuanzhuping 的帖子

谢谢袁版主!是不是一定要解压后才能打开呀?我是解压后才可能打开的。

TA的精华主题

TA的得分主题

发表于 2009-5-21 08:38 | 显示全部楼层

请教:关于禁用宏则关闭工作薄之问题

袁版主:您好!
   本人按照您介绍的步骤制作了一个关于“禁用宏则关闭工作薄”的工作薄,点击“禁用宏”,出现“该工作薄中包含一种无法禁用的宏(Microsoft Excel 4.0 版的宏),此宏.........”对话框后,点击“是(Y)”后,仍然可以打开工作薄,只是禁用了宏而已.是怎么回事?敬请袁版主赐教,十分感激!
禁止宏便关闭工作薄.gif

禁止宏便关闭工作簿.rar

5.54 KB, 下载次数: 340

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-5-21 08:43 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

第9部分 函数的使用

技巧155         不重复值的录入
       在工作表中录入数据时,有时希望能限制重复值的录入,比如在示例的A列单元格只能录入唯一的人员编号,此时可以利用工作表的Change事件结合工作表的CountIf 函数来判断所录入的人员编号是否重复,示例代码如下。
  1. #001  Private Sub Worksheet_Change(ByVal Target As Range)
  2. #002      With Target
  3. #003          If .Column <> 1 Or .Count > 1 Then Exit Sub
  4. #004          If Application.CountIf(Range("A:A"), .Value) > 1 Then
  5. #005              .Select
  6. #006              MsgBox "不能输入重复的人员编号!", 64
  7. #007              Application.EnableEvents = False
  8. #008              .Value = ""
  9. #009              Application.EnableEvents = True
  10. #010          End If
  11. #011      End With
  12. #012  End Sub
复制代码
代码解析:
       工作表的Change事件过程,使A列单元格只能录入唯一的人员编号。
      第4行代码使用工作表的CountIf 函数来判断在A列单元格输入的人员编号是否重复。工作表的CountIf 函数计算区域中满足给定条件的单元格的个数,语法如下:
      COUNTIF(range, criteria)
       参数range为需要计算其中满足条件的单元格数目的单元格区域。
       参数criteria为确定哪些单元格将被计算在内的条件,其形式可以为数字、表达式、单元格引用或文本。
       在示例中以所录入的人员编号与A列单元格区域进行比较,如果CountIf 函数的返回值大于1,说明录入的是重复编号。
       第5行代码,重新选择该单元格便于下一步清空后重新录入。
       第7、8、9行代码,清除录入的重复编号,在清除前将Application对象的EnableEvents属性设置为False,禁用事件。因为如果不禁用事件,那么在清除重复值的过程中会不断地触发工作表的Change事件,从而造成代码运行的死循环。
       经过以上的设置,在工作表的A列中只能录入唯一的人员编号,如果录入重复值会进行如图所示提示,点击确定后自动清除录入的重复编号。
       Snap1.jpg

技巧155 不重复值的录入.rar

8.07 KB, 下载次数: 826

TA的精华主题

TA的得分主题

发表于 2009-5-21 08:43 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
感谢老师的无私奉献!

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-5-21 08:48 | 显示全部楼层
原帖由 ykx042907 于 2009-5-21 08:21 发表
谢谢袁版主!是不是一定要解压后才能打开呀?我是解压后才可能打开的。

附件解压后有个文件夹,有一个Excel文件和一个123.BMP图像文件,运行时要保证两个文件在同一个目录中。

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-5-21 08:53 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
原帖由 ykx042907 于 2009-5-21 08:38 发表
袁版主:您好!
   本人按照您介绍的步骤制作了一个关于“禁用宏则关闭工作薄”的工作薄,点击“禁用宏”,出现“该工作薄中包含一种无法禁用的宏(Microsoft Excel 4.0 版的宏),此宏.........”对话框后,点击“ ...

你的附件没有为每个表添加工作表级别的名称“Auto_Activate”,并将引用都指向宏表“Macro1”的A2单元格。先运行一下队件中的AddPrivateNames过程。
Sub AddPrivateNames()
    Dim sht As Object
    For Each sht In Sheets
        ThisWorkbook.Names.Add sht.Name & "!Auto_Activate", "=Macro1!$A$2", False
    Next
End Sub
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-16 14:49 , Processed in 0.037912 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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