2014-10-06 29 views
1

如何通過簡單地點擊它在Excel單元格中插入字符?再次單擊單元格將從單元格中移除該字符。通過單擊插入單元格中的字符

例如: 我有一個單元格區域,A1:A10。如果我點擊此範圍內的某個單元格,則在該特定單元格上插入「X」,再次單擊該單元格將刪除「X」。

這可以通過分配給宏的按鈕來完成嗎? (該按鈕將分配給特定的單元格)

回答

2

我有一個單元格範圍,A1

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 

代碼: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 
+0

是的,這項工作很完美。謝謝 – 2014-10-06 13:08:54

-1

這似乎不是一個好方法。爲什麼不使用下拉菜單? 轉到數據 - >驗證選擇一個列表。您可以從Excel範圍中選擇您的選項列表,或者簡單地指定像這樣的列表「Item1; Item2」等。

使用任何VBA將阻止使用Excel中的撤銷功能意思 - 任何時候宏在Excel中執行所有撤消歷史記錄都將被清除。進行更改時非常不方便。

0

我建議使用雙擊進入/刪除值。如果你確定使用雙click..then下面的代碼爲:需要被放置在的ThisWorkbook對象

相關問題