ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[接龙...]部分程序代码注释,目录更新20051222

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2005-8-9 11:41 | 显示全部楼层
是啊,这样一来看程序我对编写者的思路更容易理解,否则对我们菜鸟来说简真是天书一样。赞!!![em08][em04]

TA的精华主题

TA的得分主题

发表于 2005-8-9 12:06 | 显示全部楼层

其实这样既有解释又有例子说明, 这样的VBA想学不识都好难!

支持 LONG 兄!

TA的精华主题

TA的得分主题

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

谢谢大伙支持,不过我的本意是大家都来参加接龙,如Plxmm和17小菜,不管代码复杂还是简单,只要有注释学习就会快点

UNARTHUR兄,你也来点啊

今天工作比较忙,也就没写东西,有空我一定会继续充实本贴的,谢谢大家的关注

TA的精华主题

TA的得分主题

发表于 2005-8-9 16:35 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) ' 用于鼠标右键点击到B列时自动创建‘数据有效性’ On Error Resume Next '忽略错误 Application.ScreenUpdating = False '关闭屏幕刷新 If Target.Column = 2 And Target.Count = 1 Then '判断是否在B列右击鼠标 Application.CommandBars("CELL").Enabled = False '如果是,关闭鼠标右击弹出菜单 With Selection.Validation '对所单击的单元格,创建数据有效性 .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="Hello,Very good,Every day,898,0044,44944" '内容可以自己修改 .IgnoreBlank = True '设置单元格 允许空值 .InCellDropdown = True '提供下拉列标 .InputTitle = "友情提示" '提示标题 .ErrorTitle = "" '出错提示,可以自己添加 .InputMessage = "你在此单元格,可以选择一个费用类别。也可以自己添加实际发生的新类别。但必须是符合规定的类别。" '提示语句 .ErrorMessage = "" '出现非有效性中内容时的提示。可以自己添加 .IMEMode = xlIMEModeOff '关闭输入法 .ShowInput = True '如果用户输入了无效数据,显示数据有效性检查输入消息 .ShowError = False '如果用户输入了无效数据,显示错误消息, End With Else '判断不在B列右击鼠标,则打开鼠标右击弹出菜单 Application.CommandBars("CELL").Enabled = True End If '结束判断 Application.ScreenUpdating = True '恢复屏幕刷新 End Sub '结束过程
[此贴子已经被作者于2005-8-9 16:35:53编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-8-9 17:47 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

那就麻烦点,也是先这样 arr = rng '定义一个数组等于rng区域(包含所有数据哦)

然后判断arr(i,1)是否为空,不为空就增加到新数组中【这个新数组,可得用动态数组哦】,自己试试了

TA的精华主题

TA的得分主题

发表于 2005-8-9 21:30 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
谢谢各们GG、JJ的倾情奉献,要努力学习才能回报。

TA的精华主题

TA的得分主题

发表于 2005-8-9 21:40 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2005-8-9 23:47 | 显示全部楼层

我是新手,看了你们的帖子非常易懂,谢谢,辛苦了!!!!!!

TA的精华主题

TA的得分主题

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

40楼附件列长不等的情况下的代码!

在龙三老师提示下改的!

Sub hjs() Dim irow%, icol%, k% Dim rng As Range Dim arr, arr1() Dim aa aa = Timer Application.ScreenUpdating = False Set rng = Sheet1.[a1].CurrentRegion '转换成数组之后操作,速度可以提高N倍 arr = rng '定义一个数组等于rng区域 k = 1 ReDim arr1(1 To rng.Count, 0) '重新定义一个与转换之后的单元格大小相等的数组,这个0一定要 For icol = 1 To rng.Columns.Count For irow = 1 To rng.Rows.Count If arr(irow, icol) <> "" Then '如果单元格不为空的时候 arr1(k, 0) = arr(irow, icol) '行列转换赋值 k = k + 1 End If Next Next Sheet2.Range("a:a").ClearContents Sheet2.Range("a1:a" & rng.Count) = arr1 '给第二个表的a列赋值 Application.ScreenUpdating = True MsgBox "Done!共" & Format(Timer - aa, "0.0000") & "秒" '记录所用的时间 End Sub

TA的精华主题

TA的得分主题

发表于 2005-8-10 08:35 | 显示全部楼层

龙哥,你怎么不说你的每个代码是什么的干活。

我看了,不知道干什么的。(其实就是我太菜的原故)

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

本版积分规则

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

GMT+8, 2024-11-22 23:05 , Processed in 0.034688 second(s), 6 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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