如何通过简单地点击Excel单元格中的字符?再次单击单元格将从单元格中删除该字符。
实施例: 我有一个细胞范围,A1:A10。如果我点击此范围内的单元格" X"插入该特定单元格,再次单击它将删除" X"。
可以通过分配给宏的按钮进行吗? (该按钮将分配给特定的单元格)
答案 0 :(得分:2)
我有一个细胞范围,A1:A10。如果我点击此范围内的单元格,则在该特定单元格上插入“X”,再次单击它将删除“X”。
使用Worksheet_BeforeDoubleClick
时必须非常小心。如果您不在代码中处理,那么只要双击,代码就会触发。同样使用Cancel = True
,否则可能会产生不良后果。
这是你在尝试的吗?
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, _
Cancel As Boolean)
'~~> Check if the double click happened in Range A1:A10
'~~> Also notice the placement of `Cancel = True`
If Not Intersect(Target, Range("A1:A10")) Is Nothing Then
'~~> Check if the cell is empty
If Len(Trim(Target)) = 0 Then
Target.Value = "X"
Cancel = True
'~~> Check if the cell already has X. This is to ensure that
'~~> the cell is not cleared if the user has typed something
'~~> else in the cell.
ElseIf UCase(Trim(Target)) = "X" Then
Target.ClearContents
Cancel = True
End If
End If
End Sub
答案 1 :(得分:0)
我建议使用双击来输入/删除值。如果你没有使用双击..那么这里是代码:
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
If IsEmpty(Target.Cells) Then
Target.Cells.Value = "x"
Else: Target.Cells.Clear
End If
Cancel = True
End Sub
代码需要放在ThisWorkbook对象
中答案 2 :(得分:-1)
这似乎不是一个好方法。为什么不使用下拉菜单? 转到数据 - >验证选择列表。您可以从Excel范围中选择选项列表,也可以直接指定列表,如“Item1; Item2”等。
使用任何VBA都会阻止在Excel中使用撤消功能 - 任何时候在Excel中执行宏都会清除所有撤消历史记录。这在进行更改时非常不方便。