Excel VBA – 双击列中所有选中的单元格大写
我有一个非常简单的VBA脚本,大写所选单元格:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) ActiveCell.Value = UCase(ActiveCell.Value) End Sub
它按预期工作,但有时我想大写选定列中的所有单元格,但只有双击列本身。 看来,我不能接收事件与Worksheet_BeforeDoubleClick
时单击列字段..
有没有一些解决方法呢?
就像我提到的,为什么不是一个快捷键? 您可以为您的macros指定一个快捷键,如下所示
现在,您只需select该列并按快捷键即可。
而且,不是循环遍历列中的每个单元格,而是一个基于Peter Albert的ONE LINER HACK的代码。
把它放在一个模块中。
Sub ChangeToUpper() Dim rng As Range '~~> Check if what the user selected is a valid range If TypeName(Selection) <> "Range" Then MsgBox "Select a range first." Exit Sub End If Set rng = Selection rng = WorksheetFunction.Transpose(Split(UCase(Join( _ WorksheetFunction.Transpose(rng), vbBack)), vbBack)) End Sub
截图:
如果DoubleClick不是强制性的,您可以使用BeforeRightClick。 如果你想保持原来的右键点击上下文菜单,你可以导入模块并检查Ctrl / Alt / Shift
Option Explicit Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) Dim condition As Boolean condition = True ' check Ctrl/Alt/Shift using http://www.cpearson.com/excel/KeyTest.aspx If condition Then MsgBox "Right Click at " & Target.Address Cancel = True End If End Sub
另一个选项是将macros选项中的Ctrl+[]
分配给macros而不是事件处理,并调用macros来处理Selection对象。
- Excel Sumifs在另一台计算机上是casesensitiv
- exe文件不被识别为内部或外部命令,可操作的程序或C ++中的batch file
- Excel连接pipe理器的EzApi问题
- Java代码运行在Windows上,但不是在Linux上
- 错误:无法使用“localhost:10.0”连接到X11窗口服务器作为DISPLAYvariables的值
- Excel C#不能更新:数据库只读
- 创buildExcel文件
- 我的代码closures工作簿,但不是窗口
- python openpyxl load_workbook错误:TypeError(NoneType not Iterable)和ValueError(Max。Value is 180)