簡體   English   中英

Excel:如何將代碼添加到單元格的丟失焦點事件?

[英]Excel: How can I add code to a lost focus Event of a cell?

有沒有辦法將代碼添加到工作表中單元格的LostFocus事件?

我想添加代碼以保持失去焦點的單元格的前50個字符:

If Len(ActiveCell.FormulaR1C1) > 50 Then
    ActiveCell.FormulaR1C1 = Left$(ActiveCell.FormulaR1C1, 47) + "..."
End If

沒有迷失焦點事件。 試試這個

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Static OldRange As Range
    If Not OldRange Is Nothing Then
        If Not OldRange.HasFormula Then
            If Len(OldRange.Value) > 50 Then
                OldRange.Value = Left$(OldRange.Value, 47) + "..."
            End If
        End If
    End If
    Set OldRange = Target.Cells(1, 1)
End Sub

注意,我認為您不想使用FormulaR1C1因為如果您碰巧有一個公式,其自身的公式超過50個字符,則發布的代碼會將無效的公式放入單元格中。 我發布的內容忽略了公式,即使它們返回的結果超過50個字符。 如果需要,可以將其更改為將公式轉換為截斷結果。

另請注意,這會很難處理多單元格選擇。 在這方面,您必須仔細考慮您的用例。

Private Sub Workbook_SheetSelectionChange(ByVal Sheet As Object, ByVal Target As Range)

End Sub

使用它你可以看到你改變了,如果你保留一個變量,你應該能夠輕松跟蹤它

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM