ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] [求助]如何做到鼠标单击单元格勾选、双击则打叉?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2006-5-21 22:45 | 显示全部楼层 |阅读模式
小弟工作中碰到的问题:如何在一个空白工作表中,通过单击、双击、三击单元格,分别在单元格自动填入“对勾”“叉号”“红色底纹”?指大家指教。   小弟试过“数据有效性”的方法——在单元格下拉条中列出“√”“×”以供选择,至于“√”“×”之外的情况,则手动设置红色单元格底纹。但需要重复操作的次数太多,此法还是太麻烦。   请大家帮忙小弟想想鼠标单击、双击、三击单元格出现相应结果的方法。谢谢!   

[求助]如何做到鼠标单击单元格勾选、双击则打叉?

[求助]如何做到鼠标单击单元格勾选、双击则打叉?

TA的精华主题

TA的得分主题

发表于 2006-5-22 09:14 | 显示全部楼层
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim i
i = ActiveCell.Row
j = ActiveCell.Column
Sheet1.Cells(i, j).Value = "√"
With Sheet1.Cells(i, j).Interior
.ColorIndex = 3
.Pattern = xlSolid
End With
End Sub
[此贴子已经被作者于2006-5-22 9:15:24编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-5-22 11:29 | 显示全部楼层

  非常感谢mcy318的相助!

  小弟测试了一下,这个宏只能实现鼠标双击单元格,则单元格自动出现“√”与红色底纹。无法做到单击出现“√”,双击出现“×”,三击出现红色底纹。

  是小弟的测试方法不对吗?还是楼上老兄的编码可以再改改?迷惑中。请大家指教!谢谢!

TA的精华主题

TA的得分主题

发表于 2006-5-22 14:10 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
三击出现红色底纹不可能作到,或我水平有限

TA的精华主题

TA的得分主题

发表于 2006-5-22 14:10 | 显示全部楼层
至于单击你可以想想就知了,自已想想否则你不可能提高的

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-5-22 17:18 | 显示全部楼层

  谢谢mcy318的详细指点!希望小弟自己思考以求进步的教导,良苦用心,小弟感铭!

  恕小弟愚钝,Excel VBA还几乎不懂,琢磨了两个小时了,还是无法对mcy318的方案进行编改实现单击单元格即可出现“√”效果。

  目前的所得是将mcy318兄2楼编码中的“√”改为“×”,实现了鼠标双击单元格即出现“×”与红色底纹的效果。

  至于单击事件该如何编码,小弟搜索到了网上如下内容

Private Sub WorksheetSelectionChange(ByVal Target As Range)

  If Target.EntireRow.Interior.ColorIndex10 Then

   Target.EntireRow.Interior.ColorIndex = 10Else

   Target.EntireRow.Interior.ColorIndex = 0

  End If

End Sub

  需要查看某行记录,只需单击该行中的任一单元格,此时该行将会自动填充绿色并高亮显示(若需改为其它颜色只需改变代码中相应的数值即可),再次单击该行中任一单元格将取消背景色的填充。另外可同时使多行记录填充背景,以方便查看或对比表格中的数据。

  只可怜小弟还无法加以变通——实在要请mcy318兄恕罪了!

  另外小弟在搜索到这段文字及测试mcy318兄的编码后,想到了如下的方案,还请大家帮忙:

  ①鼠标单击单元格,出现“√”;假如误点了这个单元格,需要清空,则再一次单击此单元格即可完成。

  ②鼠标双击单元格即出现“×”与红色底纹(已由mcy318兄的编码实现),但若是误点了这个单元格,取消的方法亦是再一次单击此单元格。

  ③假若只要出现红色底纹,在实现了以上两种要求的前提下,是否以手工清除第二种要求下产生的“×”为最佳方案?

  谢谢大家的帮助!

[此贴子已经被作者于2006-5-22 17:40:37编辑过]

TA的精华主题

TA的得分主题

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

  总结以上的设想,即第一种要求与第二种要求都要达到这样的效果:

  假如误点了某个单元格,不管单元格里因为点击鼠标出现了什么变化,都要求能够以再一次单击鼠标来“还原”(或叫“撤销”)。

  这要求有点高,亦即假如C3单元格里十分钟前本来已经鼠标单击出现“√”了,一分钟前又误点了这个单元格——双击产生了“×”与红色底纹,那么,要求现在再一次点击C3单元格,便能取消双击产生的效果,还原成十分钟前的效果——“√”且无底纹。

  对于第三种要求(只要红色底纹),另一种变通的方案是:

  先设定所有需要编辑的单元格为红色底纹,那么,只需要两种操作就可以完成“√”“×兼红色底纹”“红色底纹”三种不同效果——单击某个单元格,则此单元格变为“√兼无底纹”;双击某个单元格,则在单元格底纹本为红色的基础上,加进一个“×”。

  只是这样变通之后,空表的原始状态看去全部都是红色底纹,对视觉有些影响,不尽如人意。

  请大家指点迷津!谢谢了!

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-5-22 22:55 | 显示全部楼层
以下是引用[I]mcy318[/I]在2006-5-22 9:14:48的发言:[BR]Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim i
i = ActiveCell.Row
j = ActiveCell.Column
Sheet1.Cells(i, j).Value = "√"
With Sheet1.Cells(i, j).Interior
.ColorIndex = 3
.Pattern = xlSolid
End With
End Sub
  改动mcy318兄编码,小弟实现了双击单元格出现“√”、没有底纹的效果。编码如下: Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim i i = ActiveCell.Row j = ActiveCell.Column Sheet1.Cells(i, j).Value = "√" End Sub   可对于“单击”,小弟查了“帮助文件”,还是弄不明白该怎样编写代码。请大家指教。

TA的精华主题

TA的得分主题

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

  请大家教教小弟——鼠标单击单元格出现“√”的VBA编码如何写?

  谢谢!

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-5-23 19:01 | 显示全部楼层

  这些天需要大量劳动——逐一点击单元格以填入“√”,特此顶起,请教大家!

  谢谢了!

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

本版积分规则

关闭

最新热点上一条 /1 下一条

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

GMT+8, 2024-4-18 17:52 , Processed in 0.043356 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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